postfix-users@postfix.org wrote in
 <20240131155624.ga51...@veps.esmtp.org>:
 |>  SMFIP_NOQUIT would
 |> be a good protocol extension in general
 |
 |"Use the source, Luke."
 |
 |You mean something like
 |SMFIC_QUIT_NC
 |?

I did, i have that symbol (like MDS256..), yes.  So maybe, yes.
This is one of those which do nothing in the FreeBSD variant of
sendmail .. without not looking again right now, but i think so.

If i understand you correctly, then, it means that the commercial
variant of sendmail does exactly that, and leaves the socket
connection to the (lib)milter alive in the QUIT_NC case?
This would be exactly what i want, then!
In this hindsight i have misunderstood the meaning of QUIT_NC,
obviously.
And the only problem is that postfix does not implement QUIT_NC.

Wonderful!  Let me change the subject!

Hmmm, but SMFIP does not have anything to say, it is really only
QUIT_NC alone (i have an internal comment with
a milter-protocol.txt,v 1.6 copy, plus collected the constants
from sendmail and postfix .. i do not use libmilter).
So, it follows QUIT_NC is solely a decision of the MTA, looking
into its internals.

This .. is a good thing, too, but not exactly what i meant.  For
example, for postfix, if i use non_smtpd_milters and use
sendmail(1) for a local mail delivery, it is pretty much unlikely
that the QUIT_NC case occurs.  (It is in general so on my
currently single user system.)  It could mean a thing on the
server, at times, so it is a good thing if the server does not
close the socket if QUIT_NC happens.

But what i meant is that the server<>milter communication socket
remains open per se; maybe until some garbage-collect timer
triggers.  For a blocking socket this blocks, for a non-blocking
variant (as seems to happen) you have to select/poll anyway.
So no problem if nothing happens.
This reduces the noise quite a bit, and avoids possible
NFILE/MFILE issues on very busy (and/or tightly configured)
systems.

It would be great for postfix in particular (i used sendmail only
shortly on the internet, locally often as it is default in
FreeBSD, but never really looked into its source, *except* for the
wonderful documents that were in /usr/share if i recall
correctly), it starts up a mail handling server when it needs one
(and more as concurrent messages happen to happen), and this
actually starts a new process chain with policy filters and
milters, which all "belong" to this very server.  And -- that is
the fun of it -- that server is occasionally terminated if it has
nothing more to do, or garbage collected after some interval / xy,
together with its entire chain.  But that is solely driven by
postfix itself, all the mamas little helpers can be pretty dumb,
and only do its thing.
But until then, by the very definition of the postfix
administrator, the entire chain is alive, and it seems so
superfluous to have all those socket creation / shutdown cycles
for nothing at all.

But, maybe, if there would be a SMFIP_NOQUIT OPTNEG bit, QUIT_NC
could happen exclusively and permanently, whether there would be
a "NC", or not?  What do you think of that?

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)
_______________________________________________
Postfix-users mailing list -- postfix-users@postfix.org
To unsubscribe send an email to postfix-users-le...@postfix.org

Reply via email to