# HG changeset patch # User Maxim Dounin # Date 1380564590 -14400 # Node ID 42f874c0b970974fa71ee3f4a4c1a9db684e4dcb # Parent a720f0b0e08345ebb01353250f4031bb6e141385 Mail: added session close on smtp_greeting_delay violation. A server MUST send greeting before other replies, while before this change in case of smtp_greeting_delay violation the 220 greeting was sent after several 503 replies to commands received before greeting, resulting in protocol synchronization loss. Moreover, further commands were accepted after the greeting. While closing a connection isn't strictly RFC compliant (RFC 5321 requires servers to wait for a QUIT before closing a connection), it's probably good enough for practial uses. diff --git a/src/mail/ngx_mail_smtp_handler.c b/src/mail/ngx_mail_smtp_handler.c --- a/src/mail/ngx_mail_smtp_handler.c +++ b/src/mail/ngx_mail_smtp_handler.c @@ -321,6 +321,7 @@ ngx_mail_smtp_invalid_pipelining(ngx_eve } ngx_str_set(&s->out, smtp_invalid_pipelining); + s->quit = 1; } ngx_mail_send(c->write);