aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2010-01-26 22:59:43 +0000
committerDaniel Stenberg <daniel@haxx.se>2010-01-26 22:59:43 +0000
commitc82a1f95ebec3bd7e9da3df0a36dfaf7c9ae5ff9 (patch)
tree95de5e55ba8b8de0fe7e92cf89ad4137f12a3c94
parentd34982bb65012798a228705eeff21337eb680929 (diff)
- Mike Crowe made libcurl return CURLE_COULDNT_RESOLVE_PROXY when it is the
proxy that cannot be resolved when using c-ares. This matches the behaviour when not using c-ares.
-rw-r--r--CHANGES5
-rw-r--r--RELEASE-NOTES2
-rw-r--r--lib/hostares.c27
3 files changed, 26 insertions, 8 deletions
diff --git a/CHANGES b/CHANGES
index fee8bc2fd..d8f5c0e41 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
Changelog
+Daniel Stenberg (26 Jan 2010)
+- Mike Crowe made libcurl return CURLE_COULDNT_RESOLVE_PROXY when it is the
+ proxy that cannot be resolved when using c-ares. This matches the behaviour
+ when not using c-ares.
+
Björn Stenberg (23 Jan 2010)
- Added a new flag: -J/--remote-header-name. This option tells the
-O/--remote-name option to use the server-specified Content-Disposition
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index bf2c5d4c7..5b2c339b1 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -63,6 +63,6 @@ advice from friends like these:
Markus Koetter, Chad Monroe, Martin Storsjo, Siegfried Gyuricsko,
Jon Nelson, Julien Chaffraix, Renato Botelho, Peter Pentchev, Ingmar Runge,
Johan van Selst, Charles Kerr, Gil Weber, David McCreedy, Chris Conroy,
- Björn Stenberg
+ Bjorn Stenberg, Mike Crowe
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/hostares.c b/lib/hostares.c
index a7f1d1bd2..2d77a11ca 100644
--- a/lib/hostares.c
+++ b/lib/hostares.c
@@ -285,13 +285,26 @@ CURLcode Curl_wait_for_resolv(struct connectdata *conn,
if(!conn->async.dns) {
/* a name was not resolved */
if((timeout < 0) || (conn->async.status == ARES_ETIMEOUT)) {
- failf(data, "Resolving host timed out: %s", conn->host.dispname);
- rc = CURLE_COULDNT_RESOLVE_HOST;
+ if (conn->bits.httpproxy) {
+ failf(data, "Resolving proxy timed out: %s", conn->proxy.dispname);
+ rc = CURLE_COULDNT_RESOLVE_PROXY;
+ }
+ else {
+ failf(data, "Resolving host timed out: %s", conn->host.dispname);
+ rc = CURLE_COULDNT_RESOLVE_HOST;
+ }
}
else if(conn->async.done) {
- failf(data, "Could not resolve host: %s (%s)", conn->host.dispname,
- ares_strerror(conn->async.status));
- rc = CURLE_COULDNT_RESOLVE_HOST;
+ if (conn->bits.httpproxy) {
+ failf(data, "Could not resolve proxy: %s (%s)", conn->proxy.dispname,
+ ares_strerror(conn->async.status));
+ rc = CURLE_COULDNT_RESOLVE_PROXY;
+ }
+ else {
+ failf(data, "Could not resolve host: %s (%s)", conn->host.dispname,
+ ares_strerror(conn->async.status));
+ rc = CURLE_COULDNT_RESOLVE_HOST;
+ }
}
else
rc = CURLE_OPERATION_TIMEDOUT;
@@ -318,7 +331,7 @@ static void ares_query_completed_cb(void *arg, /* (struct connectdata *) */
{
struct connectdata *conn = (struct connectdata *)arg;
struct Curl_addrinfo * ai = NULL;
-
+
#ifdef HAVE_CARES_CALLBACK_TIMEOUTS
(void)timeouts; /* ignored */
#endif
@@ -326,7 +339,7 @@ static void ares_query_completed_cb(void *arg, /* (struct connectdata *) */
if (status == CURL_ASYNC_SUCCESS) {
ai = Curl_he2ai(hostent, conn->async.port);
}
-
+
(void)Curl_addrinfo_callback(arg, status, ai);
}