aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-10-18 19:28:20 +0100
committerSteve Holme <steve_holme@hotmail.com>2013-10-18 19:28:20 +0100
commitce61510127ea60d6f7fb66bf2092c9a4728d3fe1 (patch)
treef3254891e54ef0de31210b06234ddc8799e73037 /lib
parent86c64f3daf0079e96f4694b10fe1bc53944110fc (diff)
email: Fixed QUIT / LOGOUT being sent when SSL connect fails
Diffstat (limited to 'lib')
-rw-r--r--lib/imap.c2
-rw-r--r--lib/pop3.c5
-rw-r--r--lib/smtp.c5
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 */