|
1 | 1 | import ClashMeta_Producer from './clashmeta.js'; |
2 | 2 | import { isIPv4, isIPv6 } from '../utils/index.js'; |
3 | 3 | import { $ } from '../utils/log.js'; |
| 4 | + |
4 | 5 | const ipVersions = { |
5 | 6 | ipv4: 'ipv4_only', |
6 | 7 | ipv6: 'ipv6_only', |
@@ -77,7 +78,9 @@ const wsParser = (proxy, parsedProxy) => { |
77 | 78 | 'early-data-header-name': early_data_header_name, |
78 | 79 | } = proxy['ws-opts']; |
79 | 80 | transport.early_data_header_name = early_data_header_name; |
80 | | - transport.max_early_data = parseInt(max_early_data, 10); |
| 81 | + transport.max_early_data = max_early_data |
| 82 | + ? parseInt(max_early_data, 10) |
| 83 | + : undefined; |
81 | 84 | if (wsPath !== '') transport.path = `${wsPath}`; |
82 | 85 | if (Object.keys(wsHeaders).length > 0) { |
83 | 86 | const headers = {}; |
@@ -612,6 +615,15 @@ const hysteriaParser = (proxy = {}) => { |
612 | 615 | }; |
613 | 616 | if (parsedProxy.server_port < 0 || parsedProxy.server_port > 65535) |
614 | 617 | throw 'invalid port'; |
| 618 | + if (proxy['hop-interval']) |
| 619 | + parsedProxy.hop_interval = /^\d+$/.test(proxy['hop-interval']) |
| 620 | + ? `${proxy['hop-interval']}s` |
| 621 | + : proxy['hop-interval']; |
| 622 | + if (proxy['ports']) |
| 623 | + parsedProxy.server_ports = proxy['ports'].split(/\s*,\s*/).map((p) => { |
| 624 | + const range = p.replace(/\s*-\s*/g, ':'); |
| 625 | + return range.includes(':') ? range : `${range}:${range}`; |
| 626 | + }); |
615 | 627 | if (proxy.auth_str) parsedProxy.auth_str = `${proxy.auth_str}`; |
616 | 628 | if (proxy['auth-str']) parsedProxy.auth_str = `${proxy['auth-str']}`; |
617 | 629 | if (proxy['fast-open']) parsedProxy.udp_fragment = true; |
@@ -668,9 +680,10 @@ const hysteria2Parser = (proxy = {}) => { |
668 | 680 | ? `${proxy['hop-interval']}s` |
669 | 681 | : proxy['hop-interval']; |
670 | 682 | if (proxy['ports']) |
671 | | - parsedProxy.server_ports = proxy['ports'] |
672 | | - .split(/\s*,\s*/) |
673 | | - .map((p) => p.replace(/\s*-\s*/g, ':')); |
| 683 | + parsedProxy.server_ports = proxy['ports'].split(/\s*,\s*/).map((p) => { |
| 684 | + const range = p.replace(/\s*-\s*/g, ':'); |
| 685 | + return range.includes(':') ? range : `${range}:${range}`; |
| 686 | + }); |
674 | 687 | if (proxy.up) parsedProxy.up_mbps = parseInt(`${proxy.up}`, 10); |
675 | 688 | if (proxy.down) parsedProxy.down_mbps = parseInt(`${proxy.down}`, 10); |
676 | 689 | if (proxy.obfs === 'salamander') parsedProxy.obfs.type = 'salamander'; |
|
0 commit comments