Wietse Venema via Postfix-users wrote in
 <4tq7t76ypkzj...@spike.porcupine.org>:
 |Claus Assmann via Postfix-users:
 |>>  SMFIP_NOQUIT would
 |>> be a good protocol extension in general
 |> 
 |> "Use the source, Luke."
 |> 
 |> You mean something like
 |> SMFIC_QUIT_NC
 |> ?
 |
 |And... Postfix 'knows' that constant since postfix-2.5.0, but there
 |is no code to negotiate or send it. 

Negotiation there is none for this.  It likely is protocol version
only.

 |What would it take?
 |
 |- If the MTA sends SMFIC_QUIT_NC instead of SMFIC_QUIT, the MTA
 |will have to carefully revert the Milter connection state back to
 |what is was before the last time the MTA sent SMFIC_CONNECT, instead
 |of simply discarding that state like it does now.

There is an 'A'bort directly before, just like if there is no
QUIT.  You do support lots of successive milter actions anyhow,
the QUIT appears "superficial" from a milter point of view!

 |- The MTA then needs to keep the Milter connection open while watting
 |for new work. Once there is work, the MTA sends SMFIC_CONNECT and
 |so on.

Yes!  Oooooooh, that is a good thing!!

 |- This sounds like the MTA needs a Milter connection cache that
 |keeps a connection open for up to $max_idle seconds, because it
 |seems to make no sense to cache such state inside individual smtpd
 |(or cleanup) processes.

I have no idea on the internals, but say, in my short tests now it
seems each message handling server has its own spawn(8) instance
which drives my milter -- the quit appears superficially enforced.

 |- To avoid cross-contamination, the Milter connection cache needs
 |to be indexed by a combination of the Postfix server ID (first two
 |fields in master.cf), and by Milter configuration settings.

Why do you need a cache, then?  Create the connection when the
server starts, drop it when you garbage collect it?
One server, one socket, one milter?

 |- There need to be safety limits on how many times a cached Milter
 |connection can be reused.
 |
 |That looks like an awful lot of complexity. A simpler solution may
 |be to insert a Milter proxy between MTA and Milters (kind of like
 |how proxymap works for Postfix tables). The MTA makes only new
 |connections to the Milter proxy, which proxies those connections
 |over a pool of reusable connections.

These comments i do not understand based on my three day
experience.  "Simply do not enforce the QUIT", but keep the socket
open?

--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