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