1*0a6a1f1dSLionel Sambuc /*	$NetBSD: dns_compat.h,v 1.1.1.2 2015/01/29 06:38:27 spz Exp $	*/
2*0a6a1f1dSLionel Sambuc /*	$NetBSD: dns_compat.h,v 1.1.1.2 2015/01/29 06:38:27 spz Exp $	*/
3e985b929SDavid van Moolenbroek /*
4e985b929SDavid van Moolenbroek  * Copyright (c) 2006-2007 Niels Provos <provos@citi.umich.edu>
5e985b929SDavid van Moolenbroek  * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
6e985b929SDavid van Moolenbroek  *
7e985b929SDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
8e985b929SDavid van Moolenbroek  * modification, are permitted provided that the following conditions
9e985b929SDavid van Moolenbroek  * are met:
10e985b929SDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
11e985b929SDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer.
12e985b929SDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce the above copyright
13e985b929SDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer in the
14e985b929SDavid van Moolenbroek  *    documentation and/or other materials provided with the distribution.
15e985b929SDavid van Moolenbroek  * 3. The name of the author may not be used to endorse or promote products
16e985b929SDavid van Moolenbroek  *    derived from this software without specific prior written permission.
17e985b929SDavid van Moolenbroek  *
18e985b929SDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19e985b929SDavid van Moolenbroek  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20e985b929SDavid van Moolenbroek  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21e985b929SDavid van Moolenbroek  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22e985b929SDavid van Moolenbroek  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23e985b929SDavid van Moolenbroek  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24e985b929SDavid van Moolenbroek  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25e985b929SDavid van Moolenbroek  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26e985b929SDavid van Moolenbroek  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27e985b929SDavid van Moolenbroek  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28e985b929SDavid van Moolenbroek  */
29e985b929SDavid van Moolenbroek #ifndef _EVENT2_DNS_COMPAT_H_
30e985b929SDavid van Moolenbroek #define _EVENT2_DNS_COMPAT_H_
31e985b929SDavid van Moolenbroek 
32e985b929SDavid van Moolenbroek /** @file event2/dns_compat.h
33e985b929SDavid van Moolenbroek 
34e985b929SDavid van Moolenbroek   Potentially non-threadsafe versions of the functions in dns.h: provided
35e985b929SDavid van Moolenbroek   only for backwards compatibility.
36e985b929SDavid van Moolenbroek 
37e985b929SDavid van Moolenbroek 
38e985b929SDavid van Moolenbroek  */
39e985b929SDavid van Moolenbroek 
40e985b929SDavid van Moolenbroek #ifdef __cplusplus
41e985b929SDavid van Moolenbroek extern "C" {
42e985b929SDavid van Moolenbroek #endif
43e985b929SDavid van Moolenbroek 
44e985b929SDavid van Moolenbroek #include <event2/event-config.h>
45e985b929SDavid van Moolenbroek #ifdef _EVENT_HAVE_SYS_TYPES_H
46e985b929SDavid van Moolenbroek #include <sys/types.h>
47e985b929SDavid van Moolenbroek #endif
48e985b929SDavid van Moolenbroek #ifdef _EVENT_HAVE_SYS_TIME_H
49e985b929SDavid van Moolenbroek #include <sys/time.h>
50e985b929SDavid van Moolenbroek #endif
51e985b929SDavid van Moolenbroek 
52e985b929SDavid van Moolenbroek /* For int types. */
53e985b929SDavid van Moolenbroek #include <event2/util.h>
54e985b929SDavid van Moolenbroek 
55e985b929SDavid van Moolenbroek /**
56e985b929SDavid van Moolenbroek   Initialize the asynchronous DNS library.
57e985b929SDavid van Moolenbroek 
58e985b929SDavid van Moolenbroek   This function initializes support for non-blocking name resolution by
59e985b929SDavid van Moolenbroek   calling evdns_resolv_conf_parse() on UNIX and
60e985b929SDavid van Moolenbroek   evdns_config_windows_nameservers() on Windows.
61e985b929SDavid van Moolenbroek 
62e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it always uses the current
63e985b929SDavid van Moolenbroek     event base, and is easily confused by multiple calls to event_init(), and
64e985b929SDavid van Moolenbroek     so is not safe for multithreaded use.  Additionally, it allocates a global
65e985b929SDavid van Moolenbroek     structure that only one thread can use. The replacement is
66e985b929SDavid van Moolenbroek     evdns_base_new().
67e985b929SDavid van Moolenbroek 
68e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
69e985b929SDavid van Moolenbroek   @see evdns_shutdown()
70e985b929SDavid van Moolenbroek  */
71e985b929SDavid van Moolenbroek int evdns_init(void);
72e985b929SDavid van Moolenbroek 
73e985b929SDavid van Moolenbroek struct evdns_base;
74e985b929SDavid van Moolenbroek /**
75e985b929SDavid van Moolenbroek    Return the global evdns_base created by event_init() and used by the other
76e985b929SDavid van Moolenbroek    deprecated functions.
77e985b929SDavid van Moolenbroek 
78e985b929SDavid van Moolenbroek    @deprecated This function is deprecated because use of the global
79e985b929SDavid van Moolenbroek      evdns_base is error-prone.
80e985b929SDavid van Moolenbroek  */
81e985b929SDavid van Moolenbroek struct evdns_base *evdns_get_global_base(void);
82e985b929SDavid van Moolenbroek 
83e985b929SDavid van Moolenbroek /**
84e985b929SDavid van Moolenbroek   Shut down the asynchronous DNS resolver and terminate all active requests.
85e985b929SDavid van Moolenbroek 
86e985b929SDavid van Moolenbroek   If the 'fail_requests' option is enabled, all active requests will return
87e985b929SDavid van Moolenbroek   an empty result with the error flag set to DNS_ERR_SHUTDOWN. Otherwise,
88e985b929SDavid van Moolenbroek   the requests will be silently discarded.
89e985b929SDavid van Moolenbroek 
90e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
91e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
92e985b929SDavid van Moolenbroek     function is evdns_base_shutdown().
93e985b929SDavid van Moolenbroek 
94e985b929SDavid van Moolenbroek   @param fail_requests if zero, active requests will be aborted; if non-zero,
95e985b929SDavid van Moolenbroek 		active requests will return DNS_ERR_SHUTDOWN.
96e985b929SDavid van Moolenbroek   @see evdns_init()
97e985b929SDavid van Moolenbroek  */
98e985b929SDavid van Moolenbroek void evdns_shutdown(int fail_requests);
99e985b929SDavid van Moolenbroek 
100e985b929SDavid van Moolenbroek /**
101e985b929SDavid van Moolenbroek   Add a nameserver.
102e985b929SDavid van Moolenbroek 
103e985b929SDavid van Moolenbroek   The address should be an IPv4 address in network byte order.
104e985b929SDavid van Moolenbroek   The type of address is chosen so that it matches in_addr.s_addr.
105e985b929SDavid van Moolenbroek 
106e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
107e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
108e985b929SDavid van Moolenbroek     function is evdns_base_nameserver_add().
109e985b929SDavid van Moolenbroek 
110e985b929SDavid van Moolenbroek   @param address an IP address in network byte order
111e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
112e985b929SDavid van Moolenbroek   @see evdns_nameserver_ip_add()
113e985b929SDavid van Moolenbroek  */
114e985b929SDavid van Moolenbroek int evdns_nameserver_add(unsigned long int address);
115e985b929SDavid van Moolenbroek 
116e985b929SDavid van Moolenbroek /**
117e985b929SDavid van Moolenbroek   Get the number of configured nameservers.
118e985b929SDavid van Moolenbroek 
119e985b929SDavid van Moolenbroek   This returns the number of configured nameservers (not necessarily the
120e985b929SDavid van Moolenbroek   number of running nameservers).  This is useful for double-checking
121e985b929SDavid van Moolenbroek   whether our calls to the various nameserver configuration functions
122e985b929SDavid van Moolenbroek   have been successful.
123e985b929SDavid van Moolenbroek 
124e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
125e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
126e985b929SDavid van Moolenbroek     function is evdns_base_count_nameservers().
127e985b929SDavid van Moolenbroek 
128e985b929SDavid van Moolenbroek   @return the number of configured nameservers
129e985b929SDavid van Moolenbroek   @see evdns_nameserver_add()
130e985b929SDavid van Moolenbroek  */
131e985b929SDavid van Moolenbroek int evdns_count_nameservers(void);
132e985b929SDavid van Moolenbroek 
133e985b929SDavid van Moolenbroek /**
134e985b929SDavid van Moolenbroek   Remove all configured nameservers, and suspend all pending resolves.
135e985b929SDavid van Moolenbroek 
136e985b929SDavid van Moolenbroek   Resolves will not necessarily be re-attempted until evdns_resume() is called.
137e985b929SDavid van Moolenbroek 
138e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
139e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
140e985b929SDavid van Moolenbroek     function is evdns_base_clear_nameservers_and_suspend().
141e985b929SDavid van Moolenbroek 
142e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
143e985b929SDavid van Moolenbroek   @see evdns_resume()
144e985b929SDavid van Moolenbroek  */
145e985b929SDavid van Moolenbroek int evdns_clear_nameservers_and_suspend(void);
146e985b929SDavid van Moolenbroek 
147e985b929SDavid van Moolenbroek /**
148e985b929SDavid van Moolenbroek   Resume normal operation and continue any suspended resolve requests.
149e985b929SDavid van Moolenbroek 
150e985b929SDavid van Moolenbroek   Re-attempt resolves left in limbo after an earlier call to
151e985b929SDavid van Moolenbroek   evdns_clear_nameservers_and_suspend().
152e985b929SDavid van Moolenbroek 
153e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
154e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
155e985b929SDavid van Moolenbroek     function is evdns_base_resume().
156e985b929SDavid van Moolenbroek 
157e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
158e985b929SDavid van Moolenbroek   @see evdns_clear_nameservers_and_suspend()
159e985b929SDavid van Moolenbroek  */
160e985b929SDavid van Moolenbroek int evdns_resume(void);
161e985b929SDavid van Moolenbroek 
162e985b929SDavid van Moolenbroek /**
163e985b929SDavid van Moolenbroek   Add a nameserver.
164e985b929SDavid van Moolenbroek 
165e985b929SDavid van Moolenbroek   This wraps the evdns_nameserver_add() function by parsing a string as an IP
166e985b929SDavid van Moolenbroek   address and adds it as a nameserver.
167e985b929SDavid van Moolenbroek 
168e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
169e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
170e985b929SDavid van Moolenbroek     function is evdns_base_nameserver_ip_add().
171e985b929SDavid van Moolenbroek 
172e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
173e985b929SDavid van Moolenbroek   @see evdns_nameserver_add()
174e985b929SDavid van Moolenbroek  */
175e985b929SDavid van Moolenbroek int evdns_nameserver_ip_add(const char *ip_as_string);
176e985b929SDavid van Moolenbroek 
177e985b929SDavid van Moolenbroek /**
178e985b929SDavid van Moolenbroek   Lookup an A record for a given name.
179e985b929SDavid van Moolenbroek 
180e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
181e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
182e985b929SDavid van Moolenbroek     function is evdns_base_resolve_ipv4().
183e985b929SDavid van Moolenbroek 
184e985b929SDavid van Moolenbroek   @param name a DNS hostname
185e985b929SDavid van Moolenbroek   @param flags either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query.
186e985b929SDavid van Moolenbroek   @param callback a callback function to invoke when the request is completed
187e985b929SDavid van Moolenbroek   @param ptr an argument to pass to the callback function
188e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
189e985b929SDavid van Moolenbroek   @see evdns_resolve_ipv6(), evdns_resolve_reverse(), evdns_resolve_reverse_ipv6()
190e985b929SDavid van Moolenbroek  */
191e985b929SDavid van Moolenbroek int evdns_resolve_ipv4(const char *name, int flags, evdns_callback_type callback, void *ptr);
192e985b929SDavid van Moolenbroek 
193e985b929SDavid van Moolenbroek /**
194e985b929SDavid van Moolenbroek   Lookup an AAAA record for a given name.
195e985b929SDavid van Moolenbroek 
196e985b929SDavid van Moolenbroek   @param name a DNS hostname
197e985b929SDavid van Moolenbroek   @param flags either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query.
198e985b929SDavid van Moolenbroek   @param callback a callback function to invoke when the request is completed
199e985b929SDavid van Moolenbroek   @param ptr an argument to pass to the callback function
200e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
201e985b929SDavid van Moolenbroek   @see evdns_resolve_ipv4(), evdns_resolve_reverse(), evdns_resolve_reverse_ipv6()
202e985b929SDavid van Moolenbroek  */
203e985b929SDavid van Moolenbroek int evdns_resolve_ipv6(const char *name, int flags, evdns_callback_type callback, void *ptr);
204e985b929SDavid van Moolenbroek 
205e985b929SDavid van Moolenbroek struct in_addr;
206e985b929SDavid van Moolenbroek struct in6_addr;
207e985b929SDavid van Moolenbroek 
208e985b929SDavid van Moolenbroek /**
209e985b929SDavid van Moolenbroek   Lookup a PTR record for a given IP address.
210e985b929SDavid van Moolenbroek 
211e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
212e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
213e985b929SDavid van Moolenbroek     function is evdns_base_resolve_reverse().
214e985b929SDavid van Moolenbroek 
215e985b929SDavid van Moolenbroek   @param in an IPv4 address
216e985b929SDavid van Moolenbroek   @param flags either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query.
217e985b929SDavid van Moolenbroek   @param callback a callback function to invoke when the request is completed
218e985b929SDavid van Moolenbroek   @param ptr an argument to pass to the callback function
219e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
220e985b929SDavid van Moolenbroek   @see evdns_resolve_reverse_ipv6()
221e985b929SDavid van Moolenbroek  */
222e985b929SDavid van Moolenbroek int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_type callback, void *ptr);
223e985b929SDavid van Moolenbroek 
224e985b929SDavid van Moolenbroek /**
225e985b929SDavid van Moolenbroek   Lookup a PTR record for a given IPv6 address.
226e985b929SDavid van Moolenbroek 
227e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
228e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
229e985b929SDavid van Moolenbroek     function is evdns_base_resolve_reverse_ipv6().
230e985b929SDavid van Moolenbroek 
231e985b929SDavid van Moolenbroek   @param in an IPv6 address
232e985b929SDavid van Moolenbroek   @param flags either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query.
233e985b929SDavid van Moolenbroek   @param callback a callback function to invoke when the request is completed
234e985b929SDavid van Moolenbroek   @param ptr an argument to pass to the callback function
235e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
236e985b929SDavid van Moolenbroek   @see evdns_resolve_reverse_ipv6()
237e985b929SDavid van Moolenbroek  */
238e985b929SDavid van Moolenbroek int evdns_resolve_reverse_ipv6(const struct in6_addr *in, int flags, evdns_callback_type callback, void *ptr);
239e985b929SDavid van Moolenbroek 
240e985b929SDavid van Moolenbroek /**
241e985b929SDavid van Moolenbroek   Set the value of a configuration option.
242e985b929SDavid van Moolenbroek 
243e985b929SDavid van Moolenbroek   The currently available configuration options are:
244e985b929SDavid van Moolenbroek 
245e985b929SDavid van Moolenbroek     ndots, timeout, max-timeouts, max-inflight, and attempts
246e985b929SDavid van Moolenbroek 
247e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
248e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
249e985b929SDavid van Moolenbroek     function is evdns_base_set_option().
250e985b929SDavid van Moolenbroek 
251e985b929SDavid van Moolenbroek   @param option the name of the configuration option to be modified
252e985b929SDavid van Moolenbroek   @param val the value to be set
253e985b929SDavid van Moolenbroek   @param flags Ignored.
254e985b929SDavid van Moolenbroek   @return 0 if successful, or -1 if an error occurred
255e985b929SDavid van Moolenbroek  */
256e985b929SDavid van Moolenbroek int evdns_set_option(const char *option, const char *val, int flags);
257e985b929SDavid van Moolenbroek 
258e985b929SDavid van Moolenbroek /**
259e985b929SDavid van Moolenbroek   Parse a resolv.conf file.
260e985b929SDavid van Moolenbroek 
261e985b929SDavid van Moolenbroek   The 'flags' parameter determines what information is parsed from the
262e985b929SDavid van Moolenbroek   resolv.conf file. See the man page for resolv.conf for the format of this
263e985b929SDavid van Moolenbroek   file.
264e985b929SDavid van Moolenbroek 
265e985b929SDavid van Moolenbroek   The following directives are not parsed from the file: sortlist, rotate,
266e985b929SDavid van Moolenbroek   no-check-names, inet6, debug.
267e985b929SDavid van Moolenbroek 
268e985b929SDavid van Moolenbroek   If this function encounters an error, the possible return values are: 1 =
269e985b929SDavid van Moolenbroek   failed to open file, 2 = failed to stat file, 3 = file too large, 4 = out of
270e985b929SDavid van Moolenbroek   memory, 5 = short read from file, 6 = no nameservers listed in the file
271e985b929SDavid van Moolenbroek 
272e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
273e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
274e985b929SDavid van Moolenbroek     function is evdns_base_resolv_conf_parse().
275e985b929SDavid van Moolenbroek 
276e985b929SDavid van Moolenbroek   @param flags any of DNS_OPTION_NAMESERVERS|DNS_OPTION_SEARCH|DNS_OPTION_MISC|
277e985b929SDavid van Moolenbroek     DNS_OPTIONS_ALL
278e985b929SDavid van Moolenbroek   @param filename the path to the resolv.conf file
279e985b929SDavid van Moolenbroek   @return 0 if successful, or various positive error codes if an error
280e985b929SDavid van Moolenbroek     occurred (see above)
281e985b929SDavid van Moolenbroek   @see resolv.conf(3), evdns_config_windows_nameservers()
282e985b929SDavid van Moolenbroek  */
283e985b929SDavid van Moolenbroek int evdns_resolv_conf_parse(int flags, const char *const filename);
284e985b929SDavid van Moolenbroek 
285e985b929SDavid van Moolenbroek /**
286e985b929SDavid van Moolenbroek   Clear the list of search domains.
287e985b929SDavid van Moolenbroek 
288e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
289e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
290e985b929SDavid van Moolenbroek     function is evdns_base_search_clear().
291e985b929SDavid van Moolenbroek  */
292e985b929SDavid van Moolenbroek void evdns_search_clear(void);
293e985b929SDavid van Moolenbroek 
294e985b929SDavid van Moolenbroek /**
295e985b929SDavid van Moolenbroek   Add a domain to the list of search domains
296e985b929SDavid van Moolenbroek 
297e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
298e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
299e985b929SDavid van Moolenbroek     function is evdns_base_search_add().
300e985b929SDavid van Moolenbroek 
301e985b929SDavid van Moolenbroek   @param domain the domain to be added to the search list
302e985b929SDavid van Moolenbroek  */
303e985b929SDavid van Moolenbroek void evdns_search_add(const char *domain);
304e985b929SDavid van Moolenbroek 
305e985b929SDavid van Moolenbroek /**
306e985b929SDavid van Moolenbroek   Set the 'ndots' parameter for searches.
307e985b929SDavid van Moolenbroek 
308e985b929SDavid van Moolenbroek   Sets the number of dots which, when found in a name, causes
309e985b929SDavid van Moolenbroek   the first query to be without any search domain.
310e985b929SDavid van Moolenbroek 
311e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
312e985b929SDavid van Moolenbroek     caller to specify which evdns_base it applies to.  The recommended
313e985b929SDavid van Moolenbroek     function is evdns_base_search_ndots_set().
314e985b929SDavid van Moolenbroek 
315e985b929SDavid van Moolenbroek   @param ndots the new ndots parameter
316e985b929SDavid van Moolenbroek  */
317e985b929SDavid van Moolenbroek void evdns_search_ndots_set(const int ndots);
318e985b929SDavid van Moolenbroek 
319e985b929SDavid van Moolenbroek /**
320e985b929SDavid van Moolenbroek    As evdns_server_new_with_base.
321e985b929SDavid van Moolenbroek 
322e985b929SDavid van Moolenbroek   @deprecated This function is deprecated because it does not allow the
323e985b929SDavid van Moolenbroek     caller to specify which even_base it uses.  The recommended
324e985b929SDavid van Moolenbroek     function is evdns_add_server_port_with_base().
325e985b929SDavid van Moolenbroek 
326e985b929SDavid van Moolenbroek */
327e985b929SDavid van Moolenbroek struct evdns_server_port *evdns_add_server_port(evutil_socket_t socket, int flags, evdns_request_callback_fn_type callback, void *user_data);
328e985b929SDavid van Moolenbroek 
329e985b929SDavid van Moolenbroek #ifdef WIN32
330e985b929SDavid van Moolenbroek int evdns_config_windows_nameservers(void);
331e985b929SDavid van Moolenbroek #define EVDNS_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED
332e985b929SDavid van Moolenbroek #endif
333e985b929SDavid van Moolenbroek 
334e985b929SDavid van Moolenbroek #ifdef __cplusplus
335e985b929SDavid van Moolenbroek }
336e985b929SDavid van Moolenbroek #endif
337e985b929SDavid van Moolenbroek 
338e985b929SDavid van Moolenbroek #endif /* _EVENT2_EVENT_COMPAT_H_ */
339