This is a discussion on pre-smtpd (was: policy server for mail bombing control) within the mailing.postfix.users forums, part of the Mail Servers and Related category; [Follow-ups to postfix-devel@postfix.org] Of course the correct implementation is not to sleep in an smtpd server ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
[Follow-ups to postfix-devel@postfix.org]
Of course the correct implementation is not to sleep in an smtpd server process, but to handle all connections in a front end daemon a la Michael Tokarev. This process drops connections from clients that speak too early, and passes the remainder to Postfix. The less elegant solution executes one Postfix process per connection. The more elegant solution uses a to-be-developed hook to pass an already accepted connection into a running smtpd process. This would be a third connection management method for Postfix daemons. 1) Existing: invoke accept(2) on descriptor inherited from master This is how most Postfix daemons work. 2) Existing: use open connection on stdin/stdout This is how "/usr/sbin/sendmail -bs" invokes the smtpd program. 3) New: receive open connection via descriptor inherited from master with a master entry like this: smtp inet n - - - 1 pre-smtpd -o smtpd_back_end=smtp-pass smtp-pass pass n - - - - smtpd The pre-smtpd server would be a multi-server process that accepts all incoming SMTP connections and hands them off to a regular smtpd process after some preliminary checks. Wietse |