LibEvent中文帮助文档--第17章【废弃的DNS接口】
Libevent
快速可移植非阻塞式网络编程
修订历史
版本
日期
作者
备注
V1.0
2016-11-15
周勇
Libevent编程中文帮助文档
文档是2009-2012年由Nick-Mathewson基于Attribution-Noncommercial-Share Alike许可协议3.0创建,未来版本将会使用约束性更低的许可来创建.
此外,本文档的源代码示例也是基于BSD的"3条款"或"修改"条款.详情请参考BSD文件全部条款.本文档最新下载地址:
英文:http://libevent.org/
中文:http://blog.youkuaiyun.com/zhouyongku/article/details/53431750
请下载并运行"gitclonegit://github.com/nmathewson/libevent- book.git"获取本文档描述的最新版本源码.
17.废弃的DNS接口
废弃的接口
void evdns_base_search_ndots_set(struct evdns_base* base,const int ndots);
int evdns_base_nameserver_add(struct evdns_base* base,unsigned long int address);
void evdns_set_random_bytes_fn(void ( * fn)(char* , size_t));
struct evdns_server_port* evdns_add_server_port(evutil_socket_t socket,
int flags,
evdns_request_callback_fn_type callback,
void* user_data);
evdns_base_search_ndots_set()等价于使用evdns_base_set_option()设置ndots 选项。除了只能添加IPv4地址的名字服务器外,evdns_base_nameserver_add()函数的行为与evdns_base_nameserver_ip_add()相同。特别的是,evdns_base_nameserver_add()要求网络字节序的四字节地址。
2.0.1-alpha版 本 之 前 , 不 能 为 DNS服 务 端 口 指 定 event_base。 通 过evdns_add_server_port()添加的服务端口只能使用默认的event_base。
从版本2.0.1-alpha到2.0.3-alpha,可以使用evdns_set_random_bytes_fn(),而不是evdns_set_transsaction_id_fn(), 来指定用于产生随机数的函数。 这个函数现在没有效果了 ,因为libevent 有自己的安全的随机数发生器了。DNS_QUERY_NO_SEARCH标志曾经称作 DNS_NO_SEARCH。
2.0.1-alpha版本之前,没有单独的 evdns_base记号:evdns子系统中的所有信息都是全局存储的,操作这些信息的函数不需要 evdns_base参数。这些函数现在都废弃了,但是还声明在 event2/dns_compat.h中。它们通过一个单独的全局 evdns_base实现,通过2.0.3-alpha版本引入的 evdns_get_global_base()可以访问这个evdns_base。
函数对照表
当前函数
废弃的global_evdns_base版本函数
event_base_new()
evdns_init()
evdns_base_free()
evdns_base_free()
evdns_base_nameserver_add()
evdns_nameserver_add()
evdns_nameserver_add()
evdns_count_nameservers()
evdns_base_clear_nameservers_and_suspend()
evdns_clear_nameservers_and_suspend()
evdns_base_resume()
evdns_resume()
evdns_base_nameserver_ip_add()
evdns_nameserver_ip_add()
evdns_base_resolve_ipv4()
evdns_resolve_ipv4()
evdns_base_resolve_ipv6()
evdns_resolve_ipv6()
evdns_base_resolve_reverse()
evdns_resolve_reverse()
evdns_base_resolve_reverse_ipv6()
evdns_resolve_reverse_ipv6(
evdns_base_set_option()
evdns_set_option()
evdns_base_resolv_conf_parse()
evdns_resolv_conf_parse()
evdns_base_search_clear()
evdns_search_clear()
evdns_base_search_add()
evdns_search_add()
evdns_base_search_ndots_set()
evdns_search_ndots_set()
evdns_base_config_windows_nameservers()
evdns_config_windows_nameservers()
如果 evdns_config_windows_nameservers() 可 用 , 则EVDNS_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED宏会被定义。