六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 40|回复: 0

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

[复制链接]

升级  46%

5

主题

5

主题

5

主题

童生

Rank: 1

积分
23
 楼主| 发表于 2013-1-26 13:32:10 | 显示全部楼层 |阅读模式
<div style="color: #000000; font-size: 12px; background-color: #ffffff; margin: 8px;"> 
在window和mac,甚至模拟器里都一切正常,就是在iPad机器上崩溃了。
 
libevent版本:2.0.11-stable
 
 
1.       在DNS解析时需要使用ARC4RANDOM算法生成transaction id,而ios自带的算法库有问题,会导致崩溃。还好,libevents提供了另一套替代的算法库,使用该算法库可以不崩溃。
Evutil_rand.c里,去掉_EVENT_HAVE_ARC4RANDOM定义

这时,arc4random_buf和arc4random_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");            
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表