From: Nick Mathewson Date: Tue, 21 Jul 2009 18:32:57 +0000 (+0000) Subject: Correct the signatures for evdns_configure_windows_nameservers(), now that it is... X-Git-Tag: release-2.0.3-alpha~163 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=670658ebd7485e61e32932d35be0e26900a447b8;p=libevent Correct the signatures for evdns_configure_windows_nameservers(), now that it is exposed. svn:r1369 --- diff --git a/evdns.c b/evdns.c index ffb10041..496c2e88 100644 --- 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 diff --git a/include/event2/dns.h b/include/event2/dns.h index 49304b5c..bbe4309e 100644 --- a/include/event2/dns.h +++ b/include/event2/dns.h @@ -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 diff --git a/include/event2/dns_compat.h b/include/event2/dns_compat.h index b7ab513f..1e3c410c 100644 --- a/include/event2/dns_compat.h +++ b/include/event2/dns_compat.h @@ -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