1 /*
2 * Copyright (c) 2006-2007 Niels Provos <provos@citi.umich.edu>
3 * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. The name of the author may not be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 #ifndef _EVENT2_DNS_COMPAT_H_
28 #define _EVENT2_DNS_COMPAT_H_
29
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 #include <event2/event-config.h>
43 #ifdef _EVENT_HAVE_SYS_TYPES_H
44 #include <sys/types.h>
45 #endif
46 #ifdef _EVENT_HAVE_SYS_TIME_H
47 #include <sys/time.h>
48 #endif
49
50 /* For int types. */
52
70
71 struct evdns_base;
80
97
113
130
144
159
174
190
202
203 struct in_addr;
204 struct in6_addr;
205
221
237
255
282
291
302
316
326
327 #ifdef WIN32
328 int evdns_config_windows_nameservers(void);
329 #define EVDNS_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED
330 #endif
331
332 #ifdef __cplusplus
333 }
334 #endif
335
336 #endif /* _EVENT2_EVENT_COMPAT_H_ */
int evdns_init(void)
Initialize the asynchronous DNS library.
int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_type callback, void *ptr)
Lookup a PTR record for a given IP address.
int evdns_resume(void)
Resume normal operation and continue any suspended resolve requests.
void evdns_shutdown(int fail_requests)
Shut down the asynchronous DNS resolver and terminate all active requests.
int evdns_count_nameservers(void)
Get the number of configured nameservers.
#define evutil_socket_t
A type wide enough to hold the output of "socket()" or "accept()".
Definition: util.h:274
struct evdns_server_port * evdns_add_server_port(evutil_socket_t socket, int flags, evdns_request_callback_fn_type callback, void *user_data)
As evdns_server_new_with_base.
void(* evdns_callback_type)(int result, char type, int count, int ttl, void *addresses, void *arg)
The callback that contains the results from a lookup.
Definition: dns.h:199
int evdns_clear_nameservers_and_suspend(void)
Remove all configured nameservers, and suspend all pending resolves.
int evdns_resolve_ipv6(const char *name, int flags, evdns_callback_type callback, void *ptr)
Lookup an AAAA record for a given name.
int evdns_resolve_reverse_ipv6(const struct in6_addr *in, int flags, evdns_callback_type callback, void *ptr)
Lookup a PTR record for a given IPv6 address.
Common convenience functions for cross-platform portability and related socket manipulations.
int evdns_nameserver_ip_add(const char *ip_as_string)
Add a nameserver.
void evdns_search_ndots_set(const int ndots)
Set the 'ndots' parameter for searches.
void(* evdns_request_callback_fn_type)(struct evdns_server_request *, void *)
A callback to implement a DNS server.
Definition: dns.h:542
void evdns_search_clear(void)
Clear the list of search domains.
void evdns_search_add(const char *domain)
Add a domain to the list of search domains.
int evdns_set_option(const char *option, const char *val, int flags)
Set the value of a configuration option.
int evdns_resolve_ipv4(const char *name, int flags, evdns_callback_type callback, void *ptr)
Lookup an A record for a given name.
struct evdns_base * evdns_get_global_base(void)
Return the global evdns_base created by event_init() and used by the other deprecated functions...
int evdns_nameserver_add(unsigned long int address)
Add a nameserver.
int evdns_resolv_conf_parse(int flags, const char *const filename)
Parse a resolv.conf file.