Loading lib/connect.c +2 −2 Original line number Diff line number Diff line Loading @@ -380,8 +380,8 @@ CURLcode Curl_is_connected(struct connectdata *conn, return CURLE_OPERATION_TIMEOUTED; } } if(conn->protocol & PROT_FILE) { /* we are connected, awesome! */ if(conn->bits.tcpconnect) { /* we are connected already! */ *connected = TRUE; return CURLE_OK; } Loading lib/url.c +15 −1 Original line number Diff line number Diff line Loading @@ -1677,6 +1677,12 @@ CURLcode Curl_protocol_connect(struct connectdata *conn, struct SessionHandle *data = conn->data; CURLcode result=CURLE_OK; if(conn->bits.tcpconnect) /* We already are connected, get back. This may happen when the connect worked fine in the first call, like when we connect to a local server or proxy. */ return CURLE_OK; Curl_pgrsTime(data, TIMER_CONNECT); /* connect done */ if(data->set.verbose) Loading Loading @@ -2299,6 +2305,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, /* Setup a "faked" transfer that'll do nothing */ if(CURLE_OK == result) { conn->bits.tcpconnect = TRUE; /* we are "connected */ result = Curl_Transfer(conn, -1, -1, FALSE, NULL, /* no download */ -1, NULL); /* no upload */ } Loading Loading @@ -2795,14 +2802,21 @@ static CURLcode CreateConnection(struct SessionHandle *data, /* Connect only if not already connected! */ result = ConnectPlease(conn, hostaddr, &connected); if(connected) if(connected) { result = Curl_protocol_connect(conn, hostaddr); if(CURLE_OK == result) conn->bits.tcpconnect = TRUE; } else conn->bits.tcpconnect = FALSE; if(CURLE_OK != result) return result; } else { Curl_pgrsTime(data, TIMER_CONNECT); /* we're connected already */ conn->bits.tcpconnect = TRUE; if(data->set.verbose) verboseconnect(conn, hostaddr); } Loading lib/urldata.h +3 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,9 @@ struct ConnectBits { bool forbidchunk; /* used only to explicitly forbid chunk-upload for specific upload buffers. See readmoredata() in http.c for details. */ bool tcpconnect; /* the tcp stream (or simimlar) is connected, this is set the first time on the first connect function call */ }; /* Loading Loading
lib/connect.c +2 −2 Original line number Diff line number Diff line Loading @@ -380,8 +380,8 @@ CURLcode Curl_is_connected(struct connectdata *conn, return CURLE_OPERATION_TIMEOUTED; } } if(conn->protocol & PROT_FILE) { /* we are connected, awesome! */ if(conn->bits.tcpconnect) { /* we are connected already! */ *connected = TRUE; return CURLE_OK; } Loading
lib/url.c +15 −1 Original line number Diff line number Diff line Loading @@ -1677,6 +1677,12 @@ CURLcode Curl_protocol_connect(struct connectdata *conn, struct SessionHandle *data = conn->data; CURLcode result=CURLE_OK; if(conn->bits.tcpconnect) /* We already are connected, get back. This may happen when the connect worked fine in the first call, like when we connect to a local server or proxy. */ return CURLE_OK; Curl_pgrsTime(data, TIMER_CONNECT); /* connect done */ if(data->set.verbose) Loading Loading @@ -2299,6 +2305,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, /* Setup a "faked" transfer that'll do nothing */ if(CURLE_OK == result) { conn->bits.tcpconnect = TRUE; /* we are "connected */ result = Curl_Transfer(conn, -1, -1, FALSE, NULL, /* no download */ -1, NULL); /* no upload */ } Loading Loading @@ -2795,14 +2802,21 @@ static CURLcode CreateConnection(struct SessionHandle *data, /* Connect only if not already connected! */ result = ConnectPlease(conn, hostaddr, &connected); if(connected) if(connected) { result = Curl_protocol_connect(conn, hostaddr); if(CURLE_OK == result) conn->bits.tcpconnect = TRUE; } else conn->bits.tcpconnect = FALSE; if(CURLE_OK != result) return result; } else { Curl_pgrsTime(data, TIMER_CONNECT); /* we're connected already */ conn->bits.tcpconnect = TRUE; if(data->set.verbose) verboseconnect(conn, hostaddr); } Loading
lib/urldata.h +3 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,9 @@ struct ConnectBits { bool forbidchunk; /* used only to explicitly forbid chunk-upload for specific upload buffers. See readmoredata() in http.c for details. */ bool tcpconnect; /* the tcp stream (or simimlar) is connected, this is set the first time on the first connect function call */ }; /* Loading