mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2026-04-01 07:03:20 +08:00
feat: 处理 sni off 的情况. 若出现问题, 麻烦大家及时反馈
This commit is contained in:
@@ -186,6 +186,10 @@ function produce(proxies, targetPlatform, type, opts = {}) {
|
||||
throw new Error(`Target platform: ${targetPlatform} is not supported!`);
|
||||
}
|
||||
|
||||
const sni_off_supported = /Surge|SurgeMac|Shadowrocket/i.test(
|
||||
targetPlatform,
|
||||
);
|
||||
|
||||
// filter unsupported proxies
|
||||
proxies = proxies.filter(
|
||||
(proxy) =>
|
||||
@@ -196,6 +200,18 @@ function produce(proxies, targetPlatform, type, opts = {}) {
|
||||
if (!isNotBlank(proxy.name)) {
|
||||
proxy.name = `${proxy.type} ${proxy.server}:${proxy.port}`;
|
||||
}
|
||||
if (proxy['disable-sni']) {
|
||||
if (sni_off_supported) {
|
||||
proxy.sni = 'off';
|
||||
} else if (!['tuic'].includes(proxy.type)) {
|
||||
$.error(
|
||||
`Target platform ${targetPlatform} does not support sni off. Proxy's fields (sni, tls-fingerprint and skip-cert-verify) will be modified.`,
|
||||
);
|
||||
proxy.sni = '';
|
||||
proxy['skip-cert-verify'] = true;
|
||||
delete proxy['tls-fingerprint'];
|
||||
}
|
||||
}
|
||||
return proxy;
|
||||
});
|
||||
|
||||
@@ -396,6 +412,9 @@ function lastParse(proxy) {
|
||||
proxy.name = `${proxy.type} ${proxy.server}:${proxy.port}`;
|
||||
}
|
||||
}
|
||||
if (['', 'off'].includes(proxy.sni)) {
|
||||
proxy['disable-sni'] = true;
|
||||
}
|
||||
return proxy;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user