url.c: fix endless loop upon transport connection timeout
Jerry Wu detected and provided detailed info about this issue.
This commit is contained in:
parent
fd10c047df
commit
1bab38780b
@ -5073,7 +5073,7 @@ static CURLcode create_conn(struct SessionHandle *data,
|
|||||||
CURLcode Curl_setup_conn(struct connectdata *conn,
|
CURLcode Curl_setup_conn(struct connectdata *conn,
|
||||||
bool *protocol_done)
|
bool *protocol_done)
|
||||||
{
|
{
|
||||||
CURLcode result=CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
struct SessionHandle *data = conn->data;
|
struct SessionHandle *data = conn->data;
|
||||||
|
|
||||||
Curl_pgrsTime(data, TIMER_NAMELOOKUP);
|
Curl_pgrsTime(data, TIMER_NAMELOOKUP);
|
||||||
@ -5119,6 +5119,12 @@ CURLcode Curl_setup_conn(struct connectdata *conn,
|
|||||||
|
|
||||||
result = ConnectPlease(data, conn, &connected);
|
result = ConnectPlease(data, conn, &connected);
|
||||||
|
|
||||||
|
if(result && !conn->ip_addr) {
|
||||||
|
/* transport connection failure not related with authentication */
|
||||||
|
conn->bits.tcpconnect[FIRSTSOCKET] = FALSE;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
if(connected) {
|
if(connected) {
|
||||||
result = Curl_protocol_connect(conn, protocol_done);
|
result = Curl_protocol_connect(conn, protocol_done);
|
||||||
if(CURLE_OK == result)
|
if(CURLE_OK == result)
|
||||||
|
Loading…
Reference in New Issue
Block a user