Vetinari's $HOME


pipeline_sync - advanced version of the check_earlytalker plugin


This plugin checks if the remote host honours RFC 1854 (SMTP Service Extension for Command Pipelining), which we announce:

 ``The EHLO, DATA, VRFY, EXPN, TURN, QUIT, and NOOP commands can 
   only appear as the last command in a group since their success 
   or failure produces a change of state which the client SMTP 
   must accommodate. (NOOP is included in this group so it can be 
   used as a synchronization point.)''

The pipeline_sync plugin may be configure to check at EHLO/HELO, DATA, VRFY and NOOP. QUIT would be to late anyway and the other commands are not supported by qpsmtpd. Any data sent by the client before the configured timeout is a no-go and the hook returns with the specified action.


Arguments are key/value pairs. Setting the TIMEOUT values below to 0 disables the checks for the given hook. You may specify also an action, separated by a ,. Known arguments are:


Wait TIMEOUT seconds at connect before sending out the greeting banner, default timeout is 1.


Wait TIMEOUT seconds before sending the 354 message to the client, default timeout is 1.


Wait TIMEOUT seconds before returning 250 OK to the client, this check is disabled by default.


Wait TIMEOUT seconds before the other hook_vrfy() do something, this check is disabled by default.


This sets the default action: Sent (a temporary) error to the client and optionally disconnect, see docs/plugins.pod and Qpsmtpd::Constants for more info about the DENY, DENYSOFT, DENY_DISCONNECT and DENYSOFT_DISCONNECT constants.

Default action is DENY.


If set to a true value, clients talking before the greeting banner will be punished after sending MAIL FROM instead of immediately. Default is NOT to defer pubishing.


hook_vrfy() does currently not support DENYSOFT* and DENY_DISCONNECT.

hook_noop() does currently not support DENYSOFT*.

Drop me a note if you want to use one of the above.


Based on the check_earlytalker plugin from the qpsmtpd distribution.

(c) 2008, Hanno Hecker <>

This software is free software and may be distributed under the same terms as qpsmtpd itself.