libevent
|
00001 /* 00002 * Copyright (c) 2006-2007 Niels Provos <provos@citi.umich.edu> 00003 * Copyright (c) 2007-2010 Niels Provos and Nick Mathewson 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * 3. The name of the author may not be used to endorse or promote products 00014 * derived from this software without specific prior written permission. 00015 * 00016 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00017 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00018 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00019 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00020 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 00021 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00022 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00023 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00024 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00025 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00026 */ 00027 #ifndef _EVENT2_DNS_COMPAT_H_ 00028 #define _EVENT2_DNS_COMPAT_H_ 00029 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #endif 00041 00042 #include <event2/event-config.h> 00043 #ifdef _EVENT_HAVE_SYS_TYPES_H 00044 #include <sys/types.h> 00045 #endif 00046 #ifdef _EVENT_HAVE_SYS_TIME_H 00047 #include <sys/time.h> 00048 #endif 00049 00050 /* For int types. */ 00051 #include <event2/util.h> 00052 00069 int evdns_init(void); 00070 00071 struct evdns_base; 00079 struct evdns_base *evdns_get_global_base(void); 00080 00096 void evdns_shutdown(int fail_requests); 00097 00112 int evdns_nameserver_add(unsigned long int address); 00113 00129 int evdns_count_nameservers(void); 00130 00143 int evdns_clear_nameservers_and_suspend(void); 00144 00158 int evdns_resume(void); 00159 00173 int evdns_nameserver_ip_add(const char *ip_as_string); 00174 00189 int evdns_resolve_ipv4(const char *name, int flags, evdns_callback_type callback, void *ptr); 00190 00201 int evdns_resolve_ipv6(const char *name, int flags, evdns_callback_type callback, void *ptr); 00202 00203 struct in_addr; 00204 struct in6_addr; 00205 00220 int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_type callback, void *ptr); 00221 00236 int evdns_resolve_reverse_ipv6(const struct in6_addr *in, int flags, evdns_callback_type callback, void *ptr); 00237 00254 int evdns_set_option(const char *option, const char *val, int flags); 00255 00281 int evdns_resolv_conf_parse(int flags, const char *const filename); 00282 00290 void evdns_search_clear(void); 00291 00301 void evdns_search_add(const char *domain); 00302 00315 void evdns_search_ndots_set(const int ndots); 00316 00325 struct evdns_server_port *evdns_add_server_port(evutil_socket_t socket, int flags, evdns_request_callback_fn_type callback, void *user_data); 00326 00327 #ifdef WIN32 00328 int evdns_config_windows_nameservers(void); 00329 #define EVDNS_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED 00330 #endif 00331 00332 #ifdef __cplusplus 00333 } 00334 #endif 00335 00336 #endif /* _EVENT2_EVENT_COMPAT_H_ */