@@ -199,74 +199,74 @@ func parseXHTTPExtra(extra map[string]any, opts map[string]any) {
199199 if v , ok := extra ["xPaddingBytes" ].(string ); ok && v != "" {
200200 opts ["x-padding-bytes" ] = v
201201 }
202-
202+
203203 if v , ok := extra ["xPaddingObfsMode" ].(bool ); ok {
204204 opts ["x-padding-obfs-mode" ] = v
205205 }
206-
206+
207207 if v , ok := extra ["xPaddingKey" ].(string ); ok && v != "" {
208208 opts ["x-padding-key" ] = v
209209 }
210-
210+
211211 if v , ok := extra ["xPaddingHeader" ].(string ); ok && v != "" {
212212 opts ["x-padding-header" ] = v
213213 }
214-
214+
215215 if v , ok := extra ["xPaddingPlacement" ].(string ); ok && v != "" {
216216 opts ["x-padding-placement" ] = v
217217 }
218-
218+
219219 if v , ok := extra ["xPaddingMethod" ].(string ); ok && v != "" {
220220 opts ["x-padding-method" ] = v
221221 }
222-
222+
223223 if v , ok := extra ["uplinkHttpMethod" ].(string ); ok && v != "" {
224224 opts ["uplink-http-method" ] = v
225225 }
226-
226+
227227 if v , ok := extra ["sessionPlacement" ].(string ); ok && v != "" {
228228 opts ["session-placement" ] = v
229229 }
230-
230+
231231 if v , ok := extra ["sessionKey" ].(string ); ok && v != "" {
232232 opts ["session-key" ] = v
233233 }
234-
234+
235235 if v , ok := extra ["seqPlacement" ].(string ); ok && v != "" {
236236 opts ["seq-placement" ] = v
237237 }
238-
238+
239239 if v , ok := extra ["seqKey" ].(string ); ok && v != "" {
240240 opts ["seq-key" ] = v
241241 }
242-
242+
243243 if v , ok := extra ["uplinkDataPlacement" ].(string ); ok && v != "" {
244244 opts ["uplink-data-placement" ] = v
245245 }
246-
246+
247247 if v , ok := extra ["uplinkDataKey" ].(string ); ok && v != "" {
248248 opts ["uplink-data-key" ] = v
249249 }
250-
250+
251251 if v , ok := extra ["uplinkChunkSize" ].(float64 ); ok {
252252 opts ["uplink-chunk-size" ] = int (v )
253253 }
254-
254+
255255 if v , ok := extra ["scMaxEachPostBytes" ].(float64 ); ok {
256256 opts ["sc-max-each-post-bytes" ] = int (v )
257257 }
258-
258+
259259 if v , ok := extra ["scMinPostsIntervalMs" ].(float64 ); ok {
260260 opts ["sc-min-posts-interval-ms" ] = int (v )
261261 }
262-
262+
263263 // xmux in root extra → reuse-settings
264264 if xmuxAny , ok := extra ["xmux" ].(map [string ]any ); ok && len (xmuxAny ) > 0 {
265265 if reuse := xmuxToReuse (xmuxAny ); len (reuse ) > 0 {
266266 opts ["reuse-settings" ] = reuse
267267 }
268268 }
269-
269+
270270 if dsAny , ok := extra ["downloadSettings" ].(map [string ]any ); ok {
271271 ds := make (map [string ]any )
272272
@@ -285,7 +285,7 @@ func parseXHTTPExtra(extra map[string]any, opts map[string]any) {
285285
286286 if sec == "tls" || sec == "reality" {
287287 ds ["tls" ] = true
288-
288+
289289 if tlsAny , ok := dsAny ["tlsSettings" ].(map [string ]any ); ok {
290290 if sn , ok := tlsAny ["serverName" ].(string ); ok && sn != "" {
291291 ds ["servername" ] = sn
@@ -308,7 +308,7 @@ func parseXHTTPExtra(extra map[string]any, opts map[string]any) {
308308 ds ["skip-cert-verify" ] = true
309309 }
310310 }
311-
311+
312312 if sec == "reality" {
313313 if realityAny , ok := dsAny ["realitySettings" ].(map [string ]any ); ok {
314314 realityOpts := make (map [string ]any )
@@ -335,57 +335,6 @@ func parseXHTTPExtra(extra map[string]any, opts map[string]any) {
335335 if headers , ok := xhttpAny ["headers" ].(map [string ]any ); ok && len (headers ) > 0 {
336336 ds ["headers" ] = headers
337337 }
338- if v , ok := xhttpAny ["noGRPCHeader" ].(bool ); ok && v {
339- ds ["no-grpc-header" ] = true
340- }
341- if v , ok := xhttpAny ["xPaddingBytes" ].(string ); ok && v != "" {
342- ds ["x-padding-bytes" ] = v
343- }
344- if v , ok := xhttpAny ["xPaddingObfsMode" ].(bool ); ok {
345- ds ["x-padding-obfs-mode" ] = v
346- }
347- if v , ok := xhttpAny ["xPaddingKey" ].(string ); ok && v != "" {
348- ds ["x-padding-key" ] = v
349- }
350- if v , ok := xhttpAny ["xPaddingHeader" ].(string ); ok && v != "" {
351- ds ["x-padding-header" ] = v
352- }
353- if v , ok := xhttpAny ["xPaddingPlacement" ].(string ); ok && v != "" {
354- ds ["x-padding-placement" ] = v
355- }
356- if v , ok := xhttpAny ["xPaddingMethod" ].(string ); ok && v != "" {
357- ds ["x-padding-method" ] = v
358- }
359- if v , ok := xhttpAny ["uplinkHttpMethod" ].(string ); ok && v != "" {
360- ds ["uplink-http-method" ] = v
361- }
362- if v , ok := xhttpAny ["sessionPlacement" ].(string ); ok && v != "" {
363- ds ["session-placement" ] = v
364- }
365- if v , ok := xhttpAny ["sessionKey" ].(string ); ok && v != "" {
366- ds ["session-key" ] = v
367- }
368- if v , ok := xhttpAny ["seqPlacement" ].(string ); ok && v != "" {
369- ds ["seq-placement" ] = v
370- }
371- if v , ok := xhttpAny ["seqKey" ].(string ); ok && v != "" {
372- ds ["seq-key" ] = v
373- }
374- if v , ok := xhttpAny ["uplinkDataPlacement" ].(string ); ok && v != "" {
375- ds ["uplink-data-placement" ] = v
376- }
377- if v , ok := xhttpAny ["uplinkDataKey" ].(string ); ok && v != "" {
378- ds ["uplink-data-key" ] = v
379- }
380- if v , ok := xhttpAny ["uplinkChunkSize" ].(float64 ); ok {
381- ds ["uplink-chunk-size" ] = int (v )
382- }
383- if v , ok := xhttpAny ["scMaxEachPostBytes" ].(float64 ); ok {
384- ds ["sc-max-each-post-bytes" ] = int (v )
385- }
386- if v , ok := xhttpAny ["scMinPostsIntervalMs" ].(float64 ); ok {
387- ds ["sc-min-posts-interval-ms" ] = int (v )
388- }
389338
390339 // xmux inside downloadSettings.xhttpSettings.extra → download-settings.reuse-settings
391340 if dsExtraAny , ok := xhttpAny ["extra" ].(map [string ]any ); ok {
@@ -401,4 +350,4 @@ func parseXHTTPExtra(extra map[string]any, opts map[string]any) {
401350 opts ["download-settings" ] = ds
402351 }
403352 }
404- }
353+ }
0 commit comments