- 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.
This commit is contained in:
Daniel Stenberg 2010-01-26 22:59:43 +00:00
parent d34982bb65
commit c82a1f95eb
3 changed files with 26 additions and 8 deletions

View File

@ -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

View File

@ -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)

View File

@ -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);
}