chux0519 / pegasocks

A lightweight proxy client written in C, intends to support multiple protocols(trojan etc.)
BSD 3-Clause "New" or "Revised" License
117 stars 35 forks source link

pegasocks 移植到iOS ,访问百度正常,访问YouTube奔溃。 #32

Closed xuaofei closed 2 years ago

xuaofei commented 2 years ago

获取了203 commits最新的代码。libevent是最新分支代码。 访问百度 https://www.baidu.com正常。 访问YouTube https://www.youtube.com正常

播放YouTube视频会奔溃,比如下面地址。

https://r4---sn-i3b7knzs.googlevideo.com/videoplayback?expire=1635935522&ei=whCCYfafGb-H1d8P3o65GA&ip=194.156.99.67&id=o-AIXCyTRCaW3ebf1mJUWRiems4M9pLoZKboX9-XBIsFBH&itag=18&source=youtube&requiressl=yes&mh=uM&mm=31%2C29&mn=sn-i3b7knzs%2Csn-i3belne6&ms=au%2Crdu&mv=m&mvi=4&pl=25&initcwndbps=545000&vprv=1&mime=video%2Fmp4&ns=tJpZGl_LZuQCH3NUaJL7UJgG&gir=yes&clen=1372314&ratebypass=yes&dur=24.055&lmt=1465824066677745&mt=1635913490&fvip=4&fexp=24001373%2C24007246&c=MWEB&n=folhUdYkaDaDqw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRQIhALPKAmqifPnRdJodJ5EdMcNyPVeAoan00JNgJ0ZXJlf4AiAfd_YAtamovP4jaEPn5y9I3BFuU7bD_GkoYSBPqWC4wg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgBNBfxdLVmDJHLXeXEwlDLlSqlfvxeU0UPmDza5QBagkCIE_oTTNMaaIWV07gz_D0cHplRqd6b1gTIQOxWSFxlrcv&cpn=uLiMR8Aaz8vf3r0W&cver=2.20211102.01.00&ptk=youtube_none&pltype=contentugc

iOS端主要代码改动如下:

            *(dns_base_ptr) = evdns_base_new(                       \
                (base), EVDNS_BASE_INITIALIZE_NAMESERVERS);     \

改为:

            *(dns_base_ptr) = evdns_base_new(                       \
                (base), EVDNS_BASE_NAMESERVERS_NO_DEFAULT);     \
                evdns_base_nameserver_ip_add(*(dns_base_ptr),"8.8.8.8"); \

奔溃点:

bufferevent.c:718: Assertion bufev_private->refcnt > 0 failed in bufferevent_decref_and_unlock_

bufev_private->refcnt会减小到0.

截屏2021-11-03 下午9 44 56

chux0519 commented 2 years ago

试一下最新的 master 分支。这个报错还是只有在老的 libevent 版本里面遇到过,你确认下是不是链接到正确的 dylib / a 文件的。如果还是一样,试一下 -DWITH_ACL=OFF 看会不会报错(这样不会利用 acl 匹配,也不会对要访问的目标地址进行 DNS 查询)