[ADNS] Add function to return number of DNS servers available for query.
authorPeter Hater <7element@mail.bg>
Fri, 14 Jul 2017 16:05:31 +0000 (16:05 +0000)
committerPeter Hater <7element@mail.bg>
Fri, 14 Jul 2017 16:05:31 +0000 (16:05 +0000)
[DNSAPI] Use newly added function to return without search if no DNS servers are available.
CORE-13441 #resolve

svn path=/trunk/; revision=75339

reactos/dll/win32/dnsapi/dnsapi/query.c
reactos/sdk/lib/3rdparty/adns/src/adns.h
reactos/sdk/lib/3rdparty/adns/src/setup.c

index 4c2599b..a57f0e6 100644 (file)
@@ -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
         /*
         * adns doesn't resolve chained CNAME records (a CNAME which points to
         * another CNAME pointing to another... pointing to an A record), according
index 95a7975..020096e 100644 (file)
@@ -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);
 
 /* 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);
 
 ADNS_API int adns_init_strcfg(adns_state *newstate_r, adns_initflags flags,
                     FILE *diagfile /*0=>discard*/, const char *configtext);
index 906d2bc..0065dce 100644 (file)
@@ -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);
 }
 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;
+}