LibEvent中文帮助文档--第17章【废弃的DNS接口】



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.csdn.net/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宏会被定义。

<<下一章>>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值