Fix '?' at end of WebSocket path get escaped

This fix align sing-box's behaviour with V2Ray when it comes to processing ? at the end of WebSocket's path.
This commit is contained in:
Shelikhoo 2023-04-11 20:28:24 +01:00
parent ea18d75a28
commit 6acfc71103
No known key found for this signature in database
GPG Key ID: C4D5E79D22B25316

View File

@ -61,6 +61,10 @@ func NewClient(ctx context.Context, dialer N.Dialer, serverAddr M.Socksaddr, opt
if !strings.HasPrefix(uri.Path, "/") {
uri.Path = "/" + uri.Path
}
if strings.HasSuffix(uri.Path, "?") {
uri.ForceQuery = true
uri.Path = strings.TrimSuffix(uri.Path, "?")
}
headers := make(http.Header)
for key, value := range options.Headers {
headers[key] = value