shadowsocks-windows 4.1.9.2修改了PAC逻辑判断,导致该项目无法正常工作
Closed this issue · 12 comments
shadowsocks/shadowsocks-windows#2598
shadowsocks/shadowsocks-windows#2616
4.1.9.0更新了这2个有关PAC的PR
shadowsocks/shadowsocks-windows#2761
相关issue,等maintainer修
暂时解决办法是手动把代码里的 __PROXY__
换成 "127.0.0.1:1080"
,我觉得这种兼容性问题还是上游修一下比较好
暂时解决办法是手动把代码里的
__PROXY__
换成"127.0.0.1:1080"
,我觉得这种兼容性问题还是上游修一下比较好
是的,只能等maintainer发下一个版本
事实上打算把新版本行为作为标准固定下来……当然,需要进一步讨论也欢迎进一步讨论。以下代码或许可以用于兼容两个版本的API(十分钟写出来的,没测试)
var proxy = "__PROXY__";
function OldAPI(){
try{
eval("__PROXY__;")
// old api => SOCKS5 127.0.0.1:1080
// new api => __PROXY;
return false;
}catch(e){
return true;
}
}
if(!OldAPI()){
eval("proxy = __PROXY__;");
}
之所以不修并且打算定标准: shadowsocks/shadowsocks-windows#2766 (comment)
参与定标准:shadowsocks/shadowsocks-windows#2746
之所以不修并且打算定标准: shadowsocks/shadowsocks-windows#2766 (comment)
参与定标准:shadowsocks/shadowsocks-windows#2746
could you please add me in wechat and guide me what i should do, i am noob to this and no nothing about coding. anyone just help me out here, it is not working well for me after recent update. my wechat ID: vikram_ag , thanks a lot
如果没记错,老版本会将所有__PROXY__替换成代理地址,你实际执行的是:
if (typeof SOCKS 127.0.0.1:1080 !== "undefined") {
proxy = SOCKS 127.0.0.1:1080;
}
@studentmain 谢谢提醒,我换了个办法实现,加了个选项在生成的时候把 "__PROXY__"
直接替换成 __PROXY__
(去掉了引号),这样应该没问题吧?
也是个办法,我写的那段js主要是魔法比较多
可以参考ssr的pac那样的办法
var proxy = '__PROXY__';
if (proxy === '__PRO'+'XY__')
proxy = __PROXY__;
4.1.9之前第一句会替换,第二句不成立;4.1.9之后第二句成立,走第三句。
emmmm会因为proxy=PROXY 127.0.0.1:1080;
产生语法错误
可以用proxy = eval('__PRO'+'XY__')