From 597f1d7f55b064b65f7bbe6823a4cbf6698a9a3c Mon Sep 17 00:00:00 2001 From: Colin Leroy Date: Sat, 28 Dec 2013 19:16:37 +0100 Subject: [PATCH] Fix bug #2875, "SMTP session disconnects before recieving multi-line error message". --- src/common/smtp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/common/smtp.c b/src/common/smtp.c index a4de8de1f..e540d1fc0 100644 --- a/src/common/smtp.c +++ b/src/common/smtp.c @@ -541,6 +541,10 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg) break; } + /* ignore all multiline responses except for EHLO */ + if (msg[3] == '-' && smtp_session->state != SMTP_EHLO) + return session_recv_msg(session); + if (msg[0] == '5' && msg[1] == '0' && (msg[2] == '4' || msg[2] == '3' || msg[2] == '1')) { log_warning(LOG_PROTOCOL, _("error occurred on SMTP session\n")); @@ -578,10 +582,6 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg) return -1; } - /* ignore all multiline responses except for EHLO */ - if (cont && smtp_session->state != SMTP_EHLO) - return session_recv_msg(session); - switch (smtp_session->state) { case SMTP_READY: if (strstr(msg, "ESMTP")) -- 2.25.1