From bd5d21aaf23cd20b74ad13e9d8ca16e81a4aea48 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 20 Oct 2006 12:25:39 +0000 Subject: [PATCH] When a resolve is made on a pipelined connection we need to detect it properly (when the resoling isn't completede yet) and not confuse it with a simple connection re-use (non-pipelined). --- lib/url.c | 2 +- lib/urldata.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/url.c b/lib/url.c index 4bb4234f7..65453155c 100644 --- a/lib/url.c +++ b/lib/url.c @@ -3623,7 +3623,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, conn->connectindex, conn->bits.httpproxy?conn->proxy.dispname:conn->host.dispname); #ifdef CURLRES_ASYNCH - if(!conn->dns_entry) { + if(!conn->ip_addr_str) { infof(data, "... but it is not resolved yet!\n"); *async = TRUE; } diff --git a/lib/urldata.h b/lib/urldata.h index f701fe96c..c1b52dbf7 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -684,7 +684,8 @@ struct connectdata { /* 'dns_entry' is the particular host we use. This points to an entry in the DNS cache and it will not get pruned while locked. It gets unlocked in - Curl_done() */ + Curl_done(). This entry will be NULL if the connection is re-used as then + there is no name resolve done. */ struct Curl_dns_entry *dns_entry; /* 'ip_addr' is the particular IP we connected to. It points to a struct