Open dwwangzz opened 1 year ago
遇到同样的问题,我尝试patch src/handler/webget.cpp
diff --git a/src/handler/webget.cpp b/src/handler/webget.cpp
index 78ad4f9..643fdb2 100644
--- a/src/handler/webget.cpp
+++ b/src/handler/webget.cpp
@@ -196,8 +196,8 @@ static int curlGet(const FetchArgument &argument, FetchResult &result)
for(auto &x : *argument.request_headers)
list = curl_slist_append(list, (x.first + ": " + x.second).data());
}
- list = curl_slist_append(list, "SubConverter-Request: 1");
- list = curl_slist_append(list, "SubConverter-Version: " VERSION);
+ // list = curl_slist_append(list, "SubConverter-Request: 1");
+ // list = curl_slist_append(list, "SubConverter-Version: " VERSION);
if(list)
curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, list);
控制台报错 HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR
再次尝试指定http1.1
diff --git a/src/handler/webget.cpp b/src/handler/webget.cpp
index 78ad4f9..77c66d9 100644
--- a/src/handler/webget.cpp
+++ b/src/handler/webget.cpp
@@ -156,6 +156,7 @@ static inline void curl_set_common_options(CURL *curl_handle, const char *url, c
curl_easy_setopt(curl_handle, CURLOPT_TIMEOUT, 15L);
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, user_agent_str.data());
curl_easy_setopt(curl_handle, CURLOPT_COOKIEFILE, "");
+ curl_easy_setopt(curl_handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
if(data)
{
if(data->size_limit)
@@ -196,8 +197,8 @@ static int curlGet(const FetchArgument &argument, FetchResult &result)
for(auto &x : *argument.request_headers)
list = curl_slist_append(list, (x.first + ": " + x.second).data());
}
- list = curl_slist_append(list, "SubConverter-Request: 1");
- list = curl_slist_append(list, "SubConverter-Version: " VERSION);
+ // list = curl_slist_append(list, "SubConverter-Request: 1");
+ // list = curl_slist_append(list, "SubConverter-Version: " VERSION);
if(list)
curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, list);
控制台报错
2023/09/02 Sat 15:19:11.421269 [663 140256771570488][VERB] Fetch failed. No local cache available.
* Connected to xxxx.com (20.222.xx.0) port 443
* ALPN: offers http/1.1
* Recv failure: Connection reset by peer
* OpenSSL SSL_connect: Connection reset by peer in connection to xxxxxxx.com:443
* Closing connection
有大佬提供更多的方案吗
ps: 0.5.2版本正常获取,但是转换出的结果在新版的openwrt上有报错
你好!你发的邮件我已经收到! ——正
目前我还没有好的办法,如果能生成配置文件,就可以先把配置文件导出来看看,具体是哪个规则出问题了。我的问题和你还不大一样,我是下载订阅配置的时候就直接失败
可以试试这个使用 openssl 的版本 #644
https://github.com/Mythologyli/subconverter-curl-openssl/actions/runs/6498803908
你好!你发的邮件我已经收到! ——正
确认版本最新
检索issue
subconverter版本
v0.7.2
转换过程
配置文件已经下载好后,节点验证或者订阅规则转换过程
转换设置
默认配置,本地配置和远程配置都时一样的报错,可以使用:ACL4SSR_Mini 本地 精简版测试
复现步骤
subconverter转换订阅地址用clash下载报错“下载配置失败,HTTP返回状态码400”; 浏览器直接访问订阅下载地址,报错:The following link doesn't contain any valid node info: https://xxx。 但是我确定不用订阅转换直接下载配置后是有能用节点的。 然后我就测试了一下把配置base64解码后,又手动添加一个其他订阅的节点在转码后使用nginx代理,在重新使用subconverter转换,就可以成功转换了。如果需要提供订阅连接我可以提供。
期望结果
希望可以正常转换配置
实际结果
错误信息