From: Peter Hater <7element@mail.bg> Date: Fri, 14 Jul 2017 16:05:31 +0000 (+0000) Subject: [ADNS] Add function to return number of DNS servers available for query. X-Git-Tag: ReactOS-0.4.6~92 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=eb6e21dd58d3fbe0cea223036768122c0bacbd6c [ADNS] Add function to return number of DNS servers available for query. [DNSAPI] Use newly added function to return without search if no DNS servers are available. CORE-13441 #resolve svn path=/trunk/; revision=75339 --- diff --git a/reactos/dll/win32/dnsapi/dnsapi/query.c b/reactos/dll/win32/dnsapi/dnsapi/query.c index 4c2599b65aa..a57f0e65a59 100644 --- a/reactos/dll/win32/dnsapi/dnsapi/query.c +++ b/reactos/dll/win32/dnsapi/dnsapi/query.c @@ -798,6 +798,14 @@ DnsQuery_W(LPCWSTR Name, } } + if (!adns_numservers(astate)) + { + /* There are no servers to query so bail out */ + adns_finish(astate); + RtlFreeHeap(RtlGetProcessHeap(), 0, AnsiName); + return ERROR_FILE_NOT_FOUND; + } + /* * adns doesn't resolve chained CNAME records (a CNAME which points to * another CNAME pointing to another... pointing to an A record), according diff --git a/reactos/sdk/lib/3rdparty/adns/src/adns.h b/reactos/sdk/lib/3rdparty/adns/src/adns.h index 95a7975df6b..020096ed08d 100644 --- a/reactos/sdk/lib/3rdparty/adns/src/adns.h +++ b/reactos/sdk/lib/3rdparty/adns/src/adns.h @@ -368,7 +368,11 @@ ADNS_API int adns_init(adns_state *newstate_r, adns_initflags flags, /* ReactOS addition */ ADNS_API void adns_addserver(adns_state state, struct in_addr server); -ADNS_API void adns_ccf_search(adns_state ads, const char *fn, int lno, const char *buf); +ADNS_API void adns_ccf_search(adns_state state, + const char *fn, + int lno, + const char *buf); +ADNS_API int adns_numservers(adns_state state); ADNS_API int adns_init_strcfg(adns_state *newstate_r, adns_initflags flags, FILE *diagfile /*0=>discard*/, const char *configtext); diff --git a/reactos/sdk/lib/3rdparty/adns/src/setup.c b/reactos/sdk/lib/3rdparty/adns/src/setup.c index 906d2bcce49..0065dceceb8 100644 --- a/reactos/sdk/lib/3rdparty/adns/src/setup.c +++ b/reactos/sdk/lib/3rdparty/adns/src/setup.c @@ -715,3 +715,6 @@ void adns_addserver(adns_state ads, struct in_addr addr) { void adns_ccf_search(adns_state ads, const char *fn, int lno, const char *buf) { ccf_search(ads, fn, lno, buf); } +int adns_numservers(adns_state ads) { + return ads->nservers; +}