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 00037 #ifdef __cplusplus 00038 extern "C" { 00039 #endif 00040 00041 #include <event2/event-config.h> 00042 #ifdef _EVENT_HAVE_SYS_TYPES_H 00043 #include <sys/types.h> 00044 #endif 00045 #ifdef _EVENT_HAVE_SYS_TIME_H 00046 #include <sys/time.h> 00047 #endif 00048 00049 /* For int types. */ 00050 #include <event2/util.h> 00051 00068 int evdns_init(void); 00069 00070 struct evdns_base; 00078 struct evdns_base *evdns_get_global_base(void); 00079 00095 void evdns_shutdown(int fail_requests); 00096 00111 int evdns_nameserver_add(unsigned long int address); 00112 00128 int evdns_count_nameservers(void); 00129 00142 int evdns_clear_nameservers_and_suspend(void); 00143 00157 int evdns_resume(void); 00158 00172 int evdns_nameserver_ip_add(const char *ip_as_string); 00173 00188 int evdns_resolve_ipv4(const char *name, int flags, evdns_callback_type callback, void *ptr); 00189 00200 int evdns_resolve_ipv6(const char *name, int flags, evdns_callback_type callback, void *ptr); 00201 00202 struct in_addr; 00203 struct in6_addr; 00204 00219 int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_type callback, void *ptr); 00220 00235 int evdns_resolve_reverse_ipv6(const struct in6_addr *in, int flags, evdns_callback_type callback, void *ptr); 00236 00253 int evdns_set_option(const char *option, const char *val, int flags); 00254 00280 int evdns_resolv_conf_parse(int flags, const char *const filename); 00281 00289 void evdns_search_clear(void); 00290 00300 void evdns_search_add(const char *domain); 00301 00314 void evdns_search_ndots_set(const int ndots); 00315 00324 struct evdns_server_port *evdns_add_server_port(evutil_socket_t socket, int flags, evdns_request_callback_fn_type callback, void *user_data); 00325 00326 #ifdef WIN32 00327 int evdns_config_windows_nameservers(void); 00328 #define EVDNS_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED 00329 #endif 00330 00331 #ifdef __cplusplus 00332 } 00333 #endif 00334 00335 #endif /* _EVENT2_EVENT_COMPAT_H_ */