现在的位置: 首页 > 综合 > 正文

ios上libevent在dns解析时崩溃的解决

2012年01月25日 ⁄ 综合 ⁄ 共 452字 ⁄ 字号 评论关闭

在window和mac,甚至模拟器里都一切正常,就是在iPad机器上崩溃了。

 

libevent版本:2.0.11-stable

 

1.       DNS解析时需要使用ARC4RANDOM算法生成transaction
id
,而ios自带的算法库有问题,会导致崩溃。还好,libevents提供了另一套替代的算法库,使用该算法库可以不崩溃。

Evutil_rand.c里,去掉_EVENT_HAVE_ARC4RANDOM定义

这时,arc4random_bufarc4random_addrandom与系统提供的实现命名冲突,修改一个名字即可,同时修改arc4random.c文件。

2.       Ipad上读取DNS配置有问题,所以不能读取系统配置,而要单独设置域名解析服务器,比如Google的域名解析服务器8.8.8.8


_dns_base = evdns_base_new(_base, 0);

evdns_base_nameserver_ip_add(_dns_base,
"8.8.8.8");            

 


抱歉!评论已关闭.