]> granicus.if.org Git - libevent/commitdiff
Correct the signatures for evdns_configure_windows_nameservers(), now that it is...
authorNick Mathewson <nickm@torproject.org>
Tue, 21 Jul 2009 18:32:57 +0000 (18:32 +0000)
committerNick Mathewson <nickm@torproject.org>
Tue, 21 Jul 2009 18:32:57 +0000 (18:32 +0000)
svn:r1369

evdns.c
include/event2/dns.h
include/event2/dns_compat.h

diff --git a/evdns.c b/evdns.c
index ffb100417ebfea7ee3f60e688c51352868d8cbd3..496c2e880ebe42013a05a0c8d0d22a07ed4c338e 100644 (file)
--- a/evdns.c
+++ b/evdns.c
@@ -3538,13 +3538,32 @@ load_nameservers_from_registry(struct evdns_base *base)
 #undef TRY
 }
 
-static int
-evdns_config_windows_nameservers(struct evdns_base *base)
+int
+evdns_base_config_windows_nameservers(struct evdns_base *base)
 {
-       ASSERT_LOCKED(base);
+       int r;
+       if (base == NULL)
+               base = current_base;
+       if (base == NULL)
+               return -1;
+       EVDNS_LOCK(base);
        if (load_nameservers_with_getnetworkparams(base) == 0)
                return 0;
-       return load_nameservers_from_registry(base);
+       r = load_nameservers_from_registry(base);
+       EVDNS_UNLOCK(base);
+       return r;
+}
+
+int
+evdns_config_windows_nameservers(void)
+{
+       if (!current_base) {
+               current_base = evdns_base_new(NULL, 1);
+               return current_base == NULL ? -1 : 0;
+       } else {
+               return evdns_base_config_windows_nameservers(current_base);
+       }
+        
 }
 #endif
 
@@ -3582,7 +3601,7 @@ evdns_base_new(struct event_base *event_base, int initialize_nameservers)
        if (initialize_nameservers) {
                int r;
 #ifdef WIN32
-               r = evdns_config_windows_nameservers(base);
+               r = evdns_base_config_windows_nameservers(base);
 #else
                r = evdns_base_resolv_conf_parse(base, DNS_OPTIONS_ALL, "/etc/resolv.conf");
 #endif
index 49304b5c2e18c80a360a0e157310b168ce625dfe..bbe4309e1a957c8096a030d9a5de77507309e3da 100644 (file)
@@ -447,8 +447,8 @@ int evdns_base_resolv_conf_parse(struct evdns_base *base, int flags, const char
   @see evdns_resolv_conf_parse()
  */
 #ifdef WIN32
-int evdns_config_windows_nameservers(void);
-#define EVDNS_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED
+int evdns_base_config_windows_nameservers(struct evdns_base *);
+#define EVDNS_BASE_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED
 #endif
 
 
index b7ab513f39e5b54c4ec809835fea00994add0eff..1e3c410ce8a0395237914c3c3bba964f1c0c2781 100644 (file)
@@ -313,6 +313,11 @@ void evdns_search_ndots_set(const int ndots);
 */
 struct evdns_server_port *evdns_add_server_port(evutil_socket_t socket, int is_tcp, evdns_request_callback_fn_type callback, void *user_data);
 
+#ifdef WIN32
+int evdns_config_windows_nameservers(void);
+#define EVDNS_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED
+#endif
+
 #ifdef __cplusplus
 }
 #endif