mirror of
https://github.com/moparisthebest/curl
synced 2025-01-10 13:38:04 -05:00
asyn-ares: use consistent resolve error message
... with the help of Curl_resolver_error() which now is moved from
asyn-thead.c and is provided globally for this purpose.
Follow-up to 35ca04ce1b
Makes test 1188 work for c-ares builds
Closes #6626
This commit is contained in:
parent
7db6bc5eca
commit
692faeab9f
@ -384,13 +384,8 @@ CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,
|
|||||||
them */
|
them */
|
||||||
res->temp_ai = NULL;
|
res->temp_ai = NULL;
|
||||||
|
|
||||||
if(!data->state.async.dns) {
|
if(!data->state.async.dns)
|
||||||
failf(data, "Could not resolve: %s (%s)",
|
result = Curl_resolver_error(data);
|
||||||
data->state.async.hostname,
|
|
||||||
ares_strerror(data->state.async.status));
|
|
||||||
result = data->conn->bits.proxy?CURLE_COULDNT_RESOLVE_PROXY:
|
|
||||||
CURLE_COULDNT_RESOLVE_HOST;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
*dns = data->state.async.dns;
|
*dns = data->state.async.dns;
|
||||||
|
|
||||||
|
@ -483,35 +483,6 @@ static bool init_resolve_thread(struct Curl_easy *data,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* resolver_error() calls failf() with the appropriate message after a resolve
|
|
||||||
* error
|
|
||||||
*/
|
|
||||||
|
|
||||||
static CURLcode resolver_error(struct Curl_easy *data)
|
|
||||||
{
|
|
||||||
const char *host_or_proxy;
|
|
||||||
CURLcode result;
|
|
||||||
|
|
||||||
#ifndef CURL_DISABLE_PROXY
|
|
||||||
struct connectdata *conn = data->conn;
|
|
||||||
if(conn->bits.httpproxy) {
|
|
||||||
host_or_proxy = "proxy";
|
|
||||||
result = CURLE_COULDNT_RESOLVE_PROXY;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
host_or_proxy = "host";
|
|
||||||
result = CURLE_COULDNT_RESOLVE_HOST;
|
|
||||||
}
|
|
||||||
|
|
||||||
failf(data, "Could not resolve %s: %s", host_or_proxy,
|
|
||||||
data->state.async.hostname);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 'entry' may be NULL and then no data is returned
|
* 'entry' may be NULL and then no data is returned
|
||||||
*/
|
*/
|
||||||
@ -542,7 +513,7 @@ static CURLcode thread_wait_resolv(struct Curl_easy *data,
|
|||||||
|
|
||||||
if(!data->state.async.dns && report)
|
if(!data->state.async.dns && report)
|
||||||
/* a name was not resolved, report error */
|
/* a name was not resolved, report error */
|
||||||
result = resolver_error(data);
|
result = Curl_resolver_error(data);
|
||||||
|
|
||||||
destroy_async_data(&data->state.async);
|
destroy_async_data(&data->state.async);
|
||||||
|
|
||||||
@ -616,7 +587,7 @@ CURLcode Curl_resolver_is_resolved(struct Curl_easy *data,
|
|||||||
getaddrinfo_complete(data);
|
getaddrinfo_complete(data);
|
||||||
|
|
||||||
if(!data->state.async.dns) {
|
if(!data->state.async.dns) {
|
||||||
CURLcode result = resolver_error(data);
|
CURLcode result = Curl_resolver_error(data);
|
||||||
destroy_async_data(&data->state.async);
|
destroy_async_data(&data->state.async);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
29
lib/hostip.c
29
lib/hostip.c
@ -1124,3 +1124,32 @@ CURLcode Curl_once_resolved(struct Curl_easy *data, bool *protocol_done)
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Curl_resolver_error() calls failf() with the appropriate message after a
|
||||||
|
* resolve error
|
||||||
|
*/
|
||||||
|
|
||||||
|
CURLcode Curl_resolver_error(struct Curl_easy *data)
|
||||||
|
{
|
||||||
|
const char *host_or_proxy;
|
||||||
|
CURLcode result;
|
||||||
|
|
||||||
|
#ifndef CURL_DISABLE_PROXY
|
||||||
|
struct connectdata *conn = data->conn;
|
||||||
|
if(conn->bits.httpproxy) {
|
||||||
|
host_or_proxy = "proxy";
|
||||||
|
result = CURLE_COULDNT_RESOLVE_PROXY;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
host_or_proxy = "host";
|
||||||
|
result = CURLE_COULDNT_RESOLVE_HOST;
|
||||||
|
}
|
||||||
|
|
||||||
|
failf(data, "Could not resolve %s: %s", host_or_proxy,
|
||||||
|
data->state.async.hostname);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
@ -245,4 +245,5 @@ CURLcode Curl_resolv_check(struct Curl_easy *data,
|
|||||||
int Curl_resolv_getsock(struct Curl_easy *data,
|
int Curl_resolv_getsock(struct Curl_easy *data,
|
||||||
curl_socket_t *socks);
|
curl_socket_t *socks);
|
||||||
|
|
||||||
|
CURLcode Curl_resolver_error(struct Curl_easy *data);
|
||||||
#endif /* HEADER_CURL_HOSTIP_H */
|
#endif /* HEADER_CURL_HOSTIP_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user