]> granicus.if.org Git - curl/commitdiff
pop3.c: Fixed a problem with pop3s connections not connecting properly
authorSteve Holme <steve_holme@hotmail.com>
Fri, 18 Jan 2013 21:55:19 +0000 (21:55 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Fri, 18 Jan 2013 21:55:19 +0000 (21:55 +0000)
Fixed an issue where Curl_ssl_connect_nonblocking() wouldn't complete
correctly and the ssldone flag wouldn't be set to true for pop3s based
connections.

Bug introduced in commit: 4ffb8a6398ed.

lib/pop3.c

index b5ea7c23f09b2ebf24c12f9efc1a17e460aade87..05a8114e8254c4c62ac3a1363398adc9be97b016 100644 (file)
@@ -1229,7 +1229,12 @@ static CURLcode pop3_statemach_act(struct connectdata *conn)
 static CURLcode pop3_multi_statemach(struct connectdata *conn, bool *done)
 {
   struct pop3_conn *pop3c = &conn->proto.pop3c;
-  CURLcode result = Curl_pp_multi_statemach(&pop3c->pp);
+  CURLcode result;
+
+  if((conn->handler->flags & PROTOPT_SSL) && !pop3c->ssldone)
+    result = Curl_ssl_connect_nonblocking(conn, FIRSTSOCKET, &pop3c->ssldone);
+  else
+    result = Curl_pp_multi_statemach(&pop3c->pp);
 
   *done = (pop3c->state == POP3_STOP) ? TRUE : FALSE;