@@ -69,6 +69,25 @@ function appendAlpn(result, proxy) {
6969 if ( alpn ) result . append ( `,alpn="${ alpn } "` ) ;
7070}
7171
72+ function appendShadowTLS ( result , proxy ) {
73+ if ( proxy . plugin !== 'shadow-tls' || ! proxy [ 'plugin-opts' ] ) return ;
74+
75+ const password = proxy [ 'plugin-opts' ] . password ;
76+ const host = proxy [ 'plugin-opts' ] . host ;
77+ const version = proxy [ 'plugin-opts' ] . version ;
78+ if ( ! password ) return ;
79+
80+ result . append ( `,shadow-tls-password=${ password } ` ) ;
81+ if ( host ) result . append ( `,shadow-tls-sni=${ host } ` ) ;
82+ if ( version ) {
83+ if ( version < 2 ) {
84+ throw new Error ( `shadow-tls version ${ version } is not supported` ) ;
85+ }
86+ result . append ( `,shadow-tls-version=${ version } ` ) ;
87+ }
88+ result . appendIfPresent ( `,udp-port=${ proxy [ 'udp-port' ] } ` , 'udp-port' ) ;
89+ }
90+
7291function appendReality ( result , proxy ) {
7392 result . appendIfPresent ( `,sni=${ proxy . sni } ` , 'sni' ) ;
7493 result . appendIfPresent (
@@ -156,44 +175,7 @@ function shadowsocks(proxy) {
156175 }
157176 }
158177
159- // shadow-tls
160- if ( isPresent ( proxy , 'shadow-tls-password' ) ) {
161- result . append ( `,shadow-tls-password=${ proxy [ 'shadow-tls-password' ] } ` ) ;
162-
163- result . appendIfPresent (
164- `,shadow-tls-version=${ proxy [ 'shadow-tls-version' ] } ` ,
165- 'shadow-tls-version' ,
166- ) ;
167- result . appendIfPresent (
168- `,shadow-tls-sni=${ proxy [ 'shadow-tls-sni' ] } ` ,
169- 'shadow-tls-sni' ,
170- ) ;
171- // udp-port
172- result . appendIfPresent ( `,udp-port=${ proxy [ 'udp-port' ] } ` , 'udp-port' ) ;
173- } else if ( [ 'shadow-tls' ] . includes ( proxy . plugin ) && proxy [ 'plugin-opts' ] ) {
174- const password = proxy [ 'plugin-opts' ] . password ;
175- const host = proxy [ 'plugin-opts' ] . host ;
176- const version = proxy [ 'plugin-opts' ] . version ;
177- if ( password ) {
178- result . append ( `,shadow-tls-password=${ password } ` ) ;
179- if ( host ) {
180- result . append ( `,shadow-tls-sni=${ host } ` ) ;
181- }
182- if ( version ) {
183- if ( version < 2 ) {
184- throw new Error (
185- `shadow-tls version ${ version } is not supported` ,
186- ) ;
187- }
188- result . append ( `,shadow-tls-version=${ version } ` ) ;
189- }
190- // udp-port
191- result . appendIfPresent (
192- `,udp-port=${ proxy [ 'udp-port' ] } ` ,
193- 'udp-port' ,
194- ) ;
195- }
196- }
178+ appendShadowTLS ( result , proxy ) ;
197179
198180 // udp over tcp
199181 if ( proxy [ 'udp-over-tcp' ] ) {
@@ -250,44 +232,7 @@ function shadowsocksr(proxy) {
250232 result . appendIfPresent ( `,obfs=${ proxy . obfs } ` , 'obfs' ) ;
251233 result . appendIfPresent ( `,obfs-param=${ proxy [ 'obfs-param' ] } ` , 'obfs-param' ) ;
252234
253- // shadow-tls
254- if ( isPresent ( proxy , 'shadow-tls-password' ) ) {
255- result . append ( `,shadow-tls-password=${ proxy [ 'shadow-tls-password' ] } ` ) ;
256-
257- result . appendIfPresent (
258- `,shadow-tls-version=${ proxy [ 'shadow-tls-version' ] } ` ,
259- 'shadow-tls-version' ,
260- ) ;
261- result . appendIfPresent (
262- `,shadow-tls-sni=${ proxy [ 'shadow-tls-sni' ] } ` ,
263- 'shadow-tls-sni' ,
264- ) ;
265- // udp-port
266- result . appendIfPresent ( `,udp-port=${ proxy [ 'udp-port' ] } ` , 'udp-port' ) ;
267- } else if ( [ 'shadow-tls' ] . includes ( proxy . plugin ) && proxy [ 'plugin-opts' ] ) {
268- const password = proxy [ 'plugin-opts' ] . password ;
269- const host = proxy [ 'plugin-opts' ] . host ;
270- const version = proxy [ 'plugin-opts' ] . version ;
271- if ( password ) {
272- result . append ( `,shadow-tls-password=${ password } ` ) ;
273- if ( host ) {
274- result . append ( `,shadow-tls-sni=${ host } ` ) ;
275- }
276- if ( version ) {
277- if ( version < 2 ) {
278- throw new Error (
279- `shadow-tls version ${ version } is not supported` ,
280- ) ;
281- }
282- result . append ( `,shadow-tls-version=${ version } ` ) ;
283- }
284- // udp-port
285- result . appendIfPresent (
286- `,udp-port=${ proxy [ 'udp-port' ] } ` ,
287- 'udp-port' ,
288- ) ;
289- }
290- }
235+ appendShadowTLS ( result , proxy ) ;
291236
292237 // tfo
293238 result . appendIfPresent ( `,fast-open=${ proxy . tfo } ` , 'tfo' ) ;
0 commit comments