From: Yang Tse Date: Fri, 14 Oct 2011 15:34:42 +0000 (+0200) Subject: url.c: fix endless loop upon transport connection timeout X-Git-Tag: upstream/7.37.1~3590 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1bab38780b55cc4bd39267f54aacb49ddeb00eb2;p=platform%2Fupstream%2Fcurl.git url.c: fix endless loop upon transport connection timeout Jerry Wu detected and provided detailed info about this issue. --- diff --git a/lib/url.c b/lib/url.c index e9451b6..8ccef45 100644 --- a/lib/url.c +++ b/lib/url.c @@ -5073,7 +5073,7 @@ static CURLcode create_conn(struct SessionHandle *data, CURLcode Curl_setup_conn(struct connectdata *conn, bool *protocol_done) { - CURLcode result=CURLE_OK; + CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; Curl_pgrsTime(data, TIMER_NAMELOOKUP); @@ -5119,6 +5119,12 @@ CURLcode Curl_setup_conn(struct connectdata *conn, 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) { result = Curl_protocol_connect(conn, protocol_done); if(CURLE_OK == result)