diff --git a/DONATE.md b/DONATE.md new file mode 100644 index 00000000..b2dc4348 --- /dev/null +++ b/DONATE.md @@ -0,0 +1,24 @@ +# Support the project + +If you want to support the project, you can donate to the following addresses. + +### TRX (Tron) +``` +TSWU6VUZ4FcUghYDmbbhK15gRVvhvBgW3F +``` +### TON +``` +UQAyD2UuT5kCP6lZQlhFL0hyNibDXNE4nIo_RSLVSYAtD7N1 +``` +### Solana +``` +CJu8ickwRCwNE71uVFjYf1UveyCkRp9Xo44rhPcQpeFL +``` +### Bitcoin +``` +bc1qqx97p8k4dchqkyd47s4vf74hrqdfnmhqvcja7x +``` +### Ethereum +``` +0xAcc5919C22F2B3fAa0ec7E8BaD142da5B375FBF6 +``` \ No newline at end of file diff --git a/README.md b/README.md index 04ed0abb..9c421b11 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,31 @@ Sing-box with extended features. https://github.com/shtorm-7/sing-box-extended/tree/extended/examples +## Support the project + +If you want to support the project, you can donate to the following addresses. + +### TRX (Tron) +``` +TSWU6VUZ4FcUghYDmbbhK15gRVvhvBgW3F +``` +### TON +``` +UQAyD2UuT5kCP6lZQlhFL0hyNibDXNE4nIo_RSLVSYAtD7N1 +``` +### Solana +``` +CJu8ickwRCwNE71uVFjYf1UveyCkRp9Xo44rhPcQpeFL +``` +### Bitcoin +``` +bc1qqx97p8k4dchqkyd47s4vf74hrqdfnmhqvcja7x +``` +### Ethereum +``` +0xAcc5919C22F2B3fAa0ec7E8BaD142da5B375FBF6 +``` + ## License ``` diff --git a/examples/xhttp/server.json b/examples/xhttp/server.json index 62d5df14..c833c62d 100644 --- a/examples/xhttp/server.json +++ b/examples/xhttp/server.json @@ -35,6 +35,7 @@ "path": "/xhttp", "x_padding_bytes": "100-1000", "no_sse_header": false, // server only + "sc_max_each_post_bytes": 1000000, // packet-up only "sc_max_buffered_posts": 30, // packet-up, server only "sc_stream_up_server_secs": "20-80", // stream-up, server only "x_padding_obfs_mode": false, diff --git a/option/v2ray_transport.go b/option/v2ray_transport.go index c398c0ab..2737d747 100644 --- a/option/v2ray_transport.go +++ b/option/v2ray_transport.go @@ -203,7 +203,7 @@ func checkV2RayXHTTPBaseOptions(mode string, options *V2RayXHTTPBaseOptions) err } } if options.XPaddingBytes.From <= 0 || options.XPaddingBytes.To <= 0 { - return E.New("xPaddingBytes cannot be disabled") + return E.New("x_padding_bytes cannot be disabled") } if options.XPaddingKey == "" { options.XPaddingKey = "x_padding" @@ -231,7 +231,7 @@ func checkV2RayXHTTPBaseOptions(mode string, options *V2RayXHTTPBaseOptions) err case "body": case "cookie", "header": if mode != "packet-up" { - return E.New("UplinkDataPlacement can be " + options.UplinkDataPlacement + " only in packet-up mode") + return E.New("uplink_data_placement can be " + options.UplinkDataPlacement + " only in packet-up mode") } default: return E.New("unsupported uplink data placement: " + options.UplinkDataPlacement) @@ -241,7 +241,7 @@ func checkV2RayXHTTPBaseOptions(mode string, options *V2RayXHTTPBaseOptions) err } options.UplinkHTTPMethod = strings.ToUpper(options.UplinkHTTPMethod) if options.UplinkHTTPMethod == "GET" && mode != "packet-up" { - return E.New("uplinkHTTPMethod can be GET only in packet-up mode") + return E.New("uplink_http_method can be GET only in packet-up mode") } switch options.SessionPlacement { case "": @@ -256,7 +256,7 @@ func checkV2RayXHTTPBaseOptions(mode string, options *V2RayXHTTPBaseOptions) err case "path": case "cookie", "header", "query": if options.SessionPlacement == "path" { - return E.New("SeqPlacement must be path when SessionPlacement is path") + return E.New("seq_placement must be path when session_placement is path") } default: return E.New("unsupported seq placement: " + options.SeqPlacement) @@ -304,7 +304,7 @@ func checkV2RayXHTTPBaseOptions(mode string, options *V2RayXHTTPBaseOptions) err options.Xmux.HMaxReusableSecs.From = 1800 options.Xmux.HMaxReusableSecs.To = 3000 } else if options.Xmux.MaxConnections.To > 0 && options.Xmux.MaxConcurrency.To > 0 { - return E.New("maxConnections cannot be specified together with maxConcurrency") + return E.New("max_connections cannot be specified together with max_concurrency") } return nil }