Loading lib/connect.c +4 −1 Original line number Original line Diff line number Diff line Loading @@ -758,10 +758,13 @@ CURLcode Curl_is_connected(struct connectdata *conn, /* use this socket from now on */ /* use this socket from now on */ conn->sock[sockindex] = conn->tempsock[i]; conn->sock[sockindex] = conn->tempsock[i]; conn->ip_addr = conn->tempaddr[i]; conn->ip_addr = conn->tempaddr[i]; conn->tempsock[i] = CURL_SOCKET_BAD; /* close the other socket, if open */ /* close the other socket, if open */ if(conn->tempsock[other] != CURL_SOCKET_BAD) if(conn->tempsock[other] != CURL_SOCKET_BAD) { Curl_closesocket(conn, conn->tempsock[other]); Curl_closesocket(conn, conn->tempsock[other]); conn->tempsock[other] = CURL_SOCKET_BAD; } /* see if we need to do any proxy magic first once we connected */ /* see if we need to do any proxy magic first once we connected */ code = Curl_connected_proxy(conn, sockindex); code = Curl_connected_proxy(conn, sockindex); Loading lib/ftp.c +0 −1 Original line number Original line Diff line number Diff line Loading @@ -1866,7 +1866,6 @@ static CURLcode proxy_magic(struct connectdata *conn, if(conn->tunnel_state[SECONDARYSOCKET] != TUNNEL_COMPLETE) { if(conn->tunnel_state[SECONDARYSOCKET] != TUNNEL_COMPLETE) { /* the CONNECT procedure is not complete, the tunnel is not yet up */ /* the CONNECT procedure is not complete, the tunnel is not yet up */ state(conn, FTP_STOP); /* this phase is completed */ state(conn, FTP_STOP); /* this phase is completed */ conn->bits.tcpconnect[SECONDARYSOCKET] = FALSE; return result; return result; } } else else Loading lib/url.c +6 −0 Original line number Original line Diff line number Diff line Loading @@ -2503,6 +2503,10 @@ static void conn_free(struct connectdata *conn) Curl_closesocket(conn, conn->sock[SECONDARYSOCKET]); Curl_closesocket(conn, conn->sock[SECONDARYSOCKET]); if(CURL_SOCKET_BAD != conn->sock[FIRSTSOCKET]) if(CURL_SOCKET_BAD != conn->sock[FIRSTSOCKET]) Curl_closesocket(conn, conn->sock[FIRSTSOCKET]); Curl_closesocket(conn, conn->sock[FIRSTSOCKET]); if(CURL_SOCKET_BAD != conn->tempsock[0]) Curl_closesocket(conn, conn->tempsock[0]); if(CURL_SOCKET_BAD != conn->tempsock[1]) Curl_closesocket(conn, conn->tempsock[1]); #if defined(USE_NTLM) && defined(NTLM_WB_ENABLED) #if defined(USE_NTLM) && defined(NTLM_WB_ENABLED) Curl_ntlm_wb_cleanup(conn); Curl_ntlm_wb_cleanup(conn); Loading Loading @@ -3522,6 +3526,8 @@ static struct connectdata *allocate_conn(struct SessionHandle *data) conn->sock[FIRSTSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->sock[FIRSTSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->tempsock[0] = CURL_SOCKET_BAD; /* no file descriptor */ conn->tempsock[1] = CURL_SOCKET_BAD; /* no file descriptor */ conn->connection_id = -1; /* no ID */ conn->connection_id = -1; /* no ID */ conn->port = -1; /* unknown at this point */ conn->port = -1; /* unknown at this point */ Loading Loading
lib/connect.c +4 −1 Original line number Original line Diff line number Diff line Loading @@ -758,10 +758,13 @@ CURLcode Curl_is_connected(struct connectdata *conn, /* use this socket from now on */ /* use this socket from now on */ conn->sock[sockindex] = conn->tempsock[i]; conn->sock[sockindex] = conn->tempsock[i]; conn->ip_addr = conn->tempaddr[i]; conn->ip_addr = conn->tempaddr[i]; conn->tempsock[i] = CURL_SOCKET_BAD; /* close the other socket, if open */ /* close the other socket, if open */ if(conn->tempsock[other] != CURL_SOCKET_BAD) if(conn->tempsock[other] != CURL_SOCKET_BAD) { Curl_closesocket(conn, conn->tempsock[other]); Curl_closesocket(conn, conn->tempsock[other]); conn->tempsock[other] = CURL_SOCKET_BAD; } /* see if we need to do any proxy magic first once we connected */ /* see if we need to do any proxy magic first once we connected */ code = Curl_connected_proxy(conn, sockindex); code = Curl_connected_proxy(conn, sockindex); Loading
lib/ftp.c +0 −1 Original line number Original line Diff line number Diff line Loading @@ -1866,7 +1866,6 @@ static CURLcode proxy_magic(struct connectdata *conn, if(conn->tunnel_state[SECONDARYSOCKET] != TUNNEL_COMPLETE) { if(conn->tunnel_state[SECONDARYSOCKET] != TUNNEL_COMPLETE) { /* the CONNECT procedure is not complete, the tunnel is not yet up */ /* the CONNECT procedure is not complete, the tunnel is not yet up */ state(conn, FTP_STOP); /* this phase is completed */ state(conn, FTP_STOP); /* this phase is completed */ conn->bits.tcpconnect[SECONDARYSOCKET] = FALSE; return result; return result; } } else else Loading
lib/url.c +6 −0 Original line number Original line Diff line number Diff line Loading @@ -2503,6 +2503,10 @@ static void conn_free(struct connectdata *conn) Curl_closesocket(conn, conn->sock[SECONDARYSOCKET]); Curl_closesocket(conn, conn->sock[SECONDARYSOCKET]); if(CURL_SOCKET_BAD != conn->sock[FIRSTSOCKET]) if(CURL_SOCKET_BAD != conn->sock[FIRSTSOCKET]) Curl_closesocket(conn, conn->sock[FIRSTSOCKET]); Curl_closesocket(conn, conn->sock[FIRSTSOCKET]); if(CURL_SOCKET_BAD != conn->tempsock[0]) Curl_closesocket(conn, conn->tempsock[0]); if(CURL_SOCKET_BAD != conn->tempsock[1]) Curl_closesocket(conn, conn->tempsock[1]); #if defined(USE_NTLM) && defined(NTLM_WB_ENABLED) #if defined(USE_NTLM) && defined(NTLM_WB_ENABLED) Curl_ntlm_wb_cleanup(conn); Curl_ntlm_wb_cleanup(conn); Loading Loading @@ -3522,6 +3526,8 @@ static struct connectdata *allocate_conn(struct SessionHandle *data) conn->sock[FIRSTSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->sock[FIRSTSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->sock[SECONDARYSOCKET] = CURL_SOCKET_BAD; /* no file descriptor */ conn->tempsock[0] = CURL_SOCKET_BAD; /* no file descriptor */ conn->tempsock[1] = CURL_SOCKET_BAD; /* no file descriptor */ conn->connection_id = -1; /* no ID */ conn->connection_id = -1; /* no ID */ conn->port = -1; /* unknown at this point */ conn->port = -1; /* unknown at this point */ Loading