Fixed Surge https proxy issue

This commit is contained in:
Peng-YM 2022-05-25 23:02:06 +08:00
parent 51db70a1c3
commit a9afae92c5
3 changed files with 13 additions and 11 deletions

File diff suppressed because one or more lines are too long

View File

@ -915,18 +915,19 @@ const PROXY_PARSERS = (function () {
const name = 'Surge HTTP Parser'; const name = 'Surge HTTP Parser';
const test = (line) => { const test = (line) => {
return ( return (
/^.*=\s*http/.test(line.split(',')[0]) && /^.*=\s*https?/.test(line.split(',')[0]) &&
!Loon_Http().test(line) !Loon_Http().test(line)
); );
}; };
const parse = (line) => { const parse = (line) => {
const params = getSurgeParams(line); const params = getSurgeParams(line);
const tls = /^.*?=\s?https/.test(line);
const proxy = { const proxy = {
name: params.name, name: params.name,
type: 'http', type: 'http',
server: params.server, server: params.server,
port: params.port, port: params.port,
tls: JSON.parse(params.tls || 'false'), tls: JSON.parse(tls || 'false'),
tfo: JSON.parse(params.tfo || 'false'), tfo: JSON.parse(params.tfo || 'false'),
}; };
if (proxy.tls) { if (proxy.tls) {
@ -1624,13 +1625,14 @@ const PROXY_PRODUCERS = (function () {
},udp-relay=${proxy.udp || 'false'}`; },udp-relay=${proxy.udp || 'false'}`;
break; break;
case 'http': case 'http':
tls_opts = ', tls=false';
if (proxy.tls) { if (proxy.tls) {
tls_opts = `,tls=true,skip-cert-verify=${proxy['skip-cert-verify']},sni=${proxy.sni}`; tls_opts = `,skip-cert-verify=${proxy['skip-cert-verify']},sni=${proxy.sni}`;
} }
result = `${proxy.name}=http, ${proxy.server}, ${ result = `${proxy.name}=${proxy.tls ? 'https' : 'http'},${
proxy.port proxy.server
}${proxy.username ? ',username=' + proxy.username : ''}${ },${proxy.port}${
proxy.username ? ',username=' + proxy.username : ''
}${
proxy.password ? ',password=' + proxy.password : '' proxy.password ? ',password=' + proxy.password : ''
}${tls_opts},tfo=${proxy.tfo || 'false'}`; }${tls_opts},tfo=${proxy.tfo || 'false'}`;
break; break;

File diff suppressed because one or more lines are too long