summaryrefslogtreecommitdiff
path: root/resolv/res_query.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'resolv/res_query.cpp')
-rw-r--r--resolv/res_query.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/resolv/res_query.cpp b/resolv/res_query.cpp
index 13696c48..37767725 100644
--- a/resolv/res_query.cpp
+++ b/resolv/res_query.cpp
@@ -207,7 +207,7 @@ int res_nsearch(res_state statp, const char* name, /* domain name */
int* herrno) /* legacy and extended
h_errno NETD_RESOLV_H_ERRNO_EXT_* */
{
- const char *cp, *const *domain;
+ const char* cp;
HEADER* hp = (HEADER*) (void*) answer;
u_int dots;
int ret, saved_herrno;
@@ -251,12 +251,10 @@ int res_nsearch(res_state statp, const char* name, /* domain name */
*/
_resolv_populate_res_for_net(statp);
- for (domain = (const char* const*) statp->dnsrch; *domain && !done; domain++) {
+ for (const auto& domain : statp->search_domains) {
+ if (domain == "." || domain == "") ++root_on_list;
- if (domain[0][0] == '\0' || (domain[0][0] == '.' && domain[0][1] == '\0'))
- root_on_list++;
-
- ret = res_nquerydomain(statp, name, *domain, cl, type, answer, anslen, herrno);
+ ret = res_nquerydomain(statp, name, domain.c_str(), cl, type, answer, anslen, herrno);
if (ret > 0) return ret;
/*
@@ -295,7 +293,6 @@ int res_nsearch(res_state statp, const char* name, /* domain name */
/* anything else implies that we're done */
done++;
}
-
}
}