@@ -20,7 +20,7 @@ export default function Surge_Producer() {
2020 }
2121 switch ( proxy . type ) {
2222 case 'ss' :
23- return shadowsocks ( proxy , opts [ 'include-unsupported-proxy' ] ) ;
23+ return shadowsocks ( proxy ) ;
2424 case 'trojan' :
2525 return trojan ( proxy ) ;
2626 case 'vmess' :
@@ -38,7 +38,7 @@ export default function Surge_Producer() {
3838 case 'wireguard-surge' :
3939 return wireguard_surge ( proxy ) ;
4040 case 'hysteria2' :
41- return hysteria2 ( proxy ) ;
41+ return hysteria2 ( proxy , opts [ 'include-unsupported-proxy' ] ) ;
4242 case 'ssh' :
4343 return ssh ( proxy ) ;
4444 }
@@ -1088,10 +1088,17 @@ function wireguard_surge(proxy) {
10881088 return result . toString ( ) ;
10891089}
10901090
1091- function hysteria2 ( proxy ) {
1092- if ( proxy . obfs || proxy [ 'obfs-password' ] ) {
1093- throw new Error ( `obfs is unsupported` ) ;
1091+ function hysteria2 ( proxy , includeUnsupportedProxy ) {
1092+ if ( includeUnsupportedProxy ) {
1093+ if ( proxy [ 'obfs-password' ] && proxy . obfs != 'salamander' ) {
1094+ throw new Error ( `only salamander obfs is supported` ) ;
1095+ }
1096+ } else {
1097+ if ( proxy . obfs || proxy [ 'obfs-password' ] ) {
1098+ throw new Error ( `obfs is unsupported` ) ;
1099+ }
10941100 }
1101+
10951102 const result = new Result ( proxy ) ;
10961103 result . append ( `${ proxy . name } =hysteria2,${ proxy . server } ,${ proxy . port } ` ) ;
10971104
@@ -1106,6 +1113,10 @@ function hysteria2(proxy) {
11061113 'hop-interval' ,
11071114 ) ;
11081115
1116+ if ( proxy [ 'obfs-password' ] && proxy . obfs == 'salamander' ) {
1117+ result . append ( `,salamander-password="${ proxy [ 'obfs-password' ] } "` ) ;
1118+ }
1119+
11091120 const ip_version = ipVersions [ proxy [ 'ip-version' ] ] || proxy [ 'ip-version' ] ;
11101121 result . appendIfPresent ( `,ip-version=${ ip_version } ` , 'ip-version' ) ;
11111122
0 commit comments