@@ -615,6 +615,15 @@ const hysteriaParser = (proxy = {}) => {
615615 } ;
616616 if ( parsedProxy . server_port < 0 || parsedProxy . server_port > 65535 )
617617 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+ } ) ;
618627 if ( proxy . auth_str ) parsedProxy . auth_str = `${ proxy . auth_str } ` ;
619628 if ( proxy [ 'auth-str' ] ) parsedProxy . auth_str = `${ proxy [ 'auth-str' ] } ` ;
620629 if ( proxy [ 'fast-open' ] ) parsedProxy . udp_fragment = true ;
@@ -671,9 +680,10 @@ const hysteria2Parser = (proxy = {}) => {
671680 ? `${ proxy [ 'hop-interval' ] } s`
672681 : proxy [ 'hop-interval' ] ;
673682 if ( proxy [ 'ports' ] )
674- parsedProxy . server_ports = proxy [ 'ports' ]
675- . split ( / \s * , \s * / )
676- . 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+ } ) ;
677687 if ( proxy . up ) parsedProxy . up_mbps = parseInt ( `${ proxy . up } ` , 10 ) ;
678688 if ( proxy . down ) parsedProxy . down_mbps = parseInt ( `${ proxy . down } ` , 10 ) ;
679689 if ( proxy . obfs === 'salamander' ) parsedProxy . obfs . type = 'salamander' ;
0 commit comments