From ce61510127ea60d6f7fb66bf2092c9a4728d3fe1 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Fri, 18 Oct 2013 19:28:20 +0100 Subject: [PATCH] email: Fixed QUIT / LOGOUT being sent when SSL connect fails --- lib/imap.c | 2 +- lib/pop3.c | 5 ++--- lib/smtp.c | 5 ++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/imap.c b/lib/imap.c index 9a845102a..864bb2270 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -1982,7 +1982,7 @@ static CURLcode imap_disconnect(struct connectdata *conn, bool dead_connection) /* The IMAP session may or may not have been allocated/setup at this point! */ - if(!dead_connection && imapc->pp.conn) + if(!dead_connection && imapc->pp.conn && imapc->pp.conn->bits.protoconnstart) if(!imap_perform_logout(conn)) (void)imap_block_statemach(conn); /* ignore errors on LOGOUT */ diff --git a/lib/pop3.c b/lib/pop3.c index a77193384..59021bba1 100644 --- a/lib/pop3.c +++ b/lib/pop3.c @@ -1634,8 +1634,7 @@ static CURLcode pop3_do(struct connectdata *conn, bool *done) * Disconnect from an POP3 server. Cleanup protocol-specific per-connection * resources. BLOCKING. */ -static CURLcode pop3_disconnect(struct connectdata *conn, - bool dead_connection) +static CURLcode pop3_disconnect(struct connectdata *conn, bool dead_connection) { struct pop3_conn *pop3c = &conn->proto.pop3c; @@ -1645,7 +1644,7 @@ static CURLcode pop3_disconnect(struct connectdata *conn, /* The POP3 session may or may not have been allocated/setup at this point! */ - if(!dead_connection && pop3c->pp.conn) + if(!dead_connection && pop3c->pp.conn && pop3c->pp.conn->bits.protoconnstart) if(!pop3_perform_quit(conn)) (void)pop3_block_statemach(conn); /* ignore errors on QUIT */ diff --git a/lib/smtp.c b/lib/smtp.c index 9626a30d8..f82c8aac2 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -1632,8 +1632,7 @@ static CURLcode smtp_do(struct connectdata *conn, bool *done) * Disconnect from an SMTP server. Cleanup protocol-specific per-connection * resources. BLOCKING. */ -static CURLcode smtp_disconnect(struct connectdata *conn, - bool dead_connection) +static CURLcode smtp_disconnect(struct connectdata *conn, bool dead_connection) { struct smtp_conn *smtpc = &conn->proto.smtpc; @@ -1643,7 +1642,7 @@ static CURLcode smtp_disconnect(struct connectdata *conn, /* The SMTP session may or may not have been allocated/setup at this point! */ - if(!dead_connection && smtpc->pp.conn) + if(!dead_connection && smtpc->pp.conn && smtpc->pp.conn->bits.protoconnstart) if(!smtp_perform_quit(conn)) (void)smtp_block_statemach(conn); /* ignore errors on QUIT */