aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-01-18 21:55:19 +0000
committerSteve Holme <steve_holme@hotmail.com>2013-01-18 21:55:19 +0000
commit7b5be79908ee5171553ffb37813eb75e9be91a53 (patch)
treeee988b5a29f53df656104412b83c90e2ae0f893e /lib
parent446afec71a7aee3f8c5af08c8247db74196a5ef6 (diff)
pop3.c: Fixed a problem with pop3s connections not connecting properly
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.
Diffstat (limited to 'lib')
-rw-r--r--lib/pop3.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/pop3.c b/lib/pop3.c
index b5ea7c23f..05a8114e8 100644
--- a/lib/pop3.c
+++ b/lib/pop3.c
@@ -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;