From 159b82c0567c534a98556665e0b8518dbee71714 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Wed, 15 Jun 2011 10:56:05 +0200 Subject: [PATCH] Revert "Only fall back to AF_INET searches when looking for AF_UNSPEC addresses" This reverts commit b5823d65706af687c0e5110af8f0cfdcd068997d. This patch was not reviewed properly before pushing --- ares_gethostbyname.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ares_gethostbyname.c b/ares_gethostbyname.c index ad89dc27..72f8f8b9 100644 --- a/ares_gethostbyname.c +++ b/ares_gethostbyname.c @@ -194,11 +194,11 @@ static void host_callback(void *arg, int status, int timeouts, else if (hquery->sent_family == AF_INET6) { status = ares_parse_aaaa_reply(abuf, alen, &host, NULL, NULL); - if ((status == ARES_ENODATA || status == ARES_EBADRESP) && - hquery->want_family == AF_UNSPEC) { + if (status == ARES_ENODATA || status == ARES_EBADRESP) { /* The query returned something but either there were no AAAA records (e.g. just CNAME) or the response was malformed. Try - looking up A instead. */ + looking up A instead. We should possibly limit this + attempt-next logic to AF_UNSPEC lookups only. */ hquery->sent_family = AF_INET; ares_search(hquery->channel, hquery->name, C_IN, T_A, host_callback, hquery); @@ -210,10 +210,11 @@ static void host_callback(void *arg, int status, int timeouts, end_hquery(hquery, status, host); } else if ((status == ARES_ENODATA || status == ARES_EBADRESP || - status == ARES_ETIMEOUT) && (hquery->sent_family == AF_INET6 && - hquery->want_family == AF_UNSPEC)) + status == ARES_ETIMEOUT) && hquery->sent_family == AF_INET6) { - /* The AAAA query yielded no useful result. Now look up an A instead. */ + /* The AAAA query yielded no useful result. Now look up an A instead. + We should possibly limit this attempt-next logic to AF_UNSPEC lookups + only. */ hquery->sent_family = AF_INET; ares_search(hquery->channel, hquery->name, C_IN, T_A, host_callback, hquery);