diff options
Diffstat (limited to 'lib/multi.c')
-rw-r--r-- | lib/multi.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/multi.c b/lib/multi.c index e723a3ebf..f11ba069b 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -621,17 +621,26 @@ static int waitconnect_getsock(struct connectdata *conn, curl_socket_t *sock, int numsocks) { + int i; + int s=0; + int rc=0; + if(!numsocks) return GETSOCK_BLANK; - sock[0] = conn->sock[FIRSTSOCKET]; + for(i=0; i<2; i++) { + if(conn->tempsock[i] != CURL_SOCKET_BAD) { + sock[s] = conn->tempsock[i]; + rc |= GETSOCK_WRITESOCK(s++); + } + } /* when we've sent a CONNECT to a proxy, we should rather wait for the socket to become readable to be able to get the response headers */ if(conn->tunnel_state[FIRSTSOCKET] == TUNNEL_CONNECT) return GETSOCK_READSOCK(0); - return GETSOCK_WRITESOCK(0); + return rc; } static int domore_getsock(struct connectdata *conn, |