Vetinari's $HOME

NAME

pipeline_sync - advanced version of the check_earlytalker plugin

DESCRIPTION

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.

CONFIGURATION

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:

connect TIMEOUT[,ACTION]

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

data TIMEOUT[,ACTION]

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

noop TIMEOUT[,ACTION]

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

vrfy TIMEOUT[,ACTION]

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

action DENY(SOFT)?(_DISCONNECT)?

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.

defer BOOLEAN

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.

NOTES

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.

AUTHOR

Based on the check_earlytalker plugin from the qpsmtpd distribution.

(c) 2008, Hanno Hecker <vetinari@ankh-morp.org>

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