From b279076ba1a78fef3d92cc9d540e84d0ff8a182f Mon Sep 17 00:00:00 2001 From: RPRX <63339210+RPRX@users.noreply.github.com> Date: Sat, 2 May 2026 21:55:12 +0000 Subject: [PATCH] Browser Dialer: Fix WSS with no early data Fixes https://github.com/2dust/v2rayNG/issues/5519#issuecomment-4357741914 --- transport/internet/browser_dialer/dialer.go | 39 ++++++++++----------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/transport/internet/browser_dialer/dialer.go b/transport/internet/browser_dialer/dialer.go index 53955bc4..3be712d7 100644 --- a/transport/internet/browser_dialer/dialer.go +++ b/transport/internet/browser_dialer/dialer.go @@ -20,10 +20,10 @@ import ( var webpage []byte type task struct { - Method string `json:"method"` - URL string `json:"url"` - Extra any `json:"extra,omitempty"` - StreamResponse bool `json:"streamResponse"` + Method string `json:"method"` + URL string `json:"url"` + Extra any `json:"extra,omitempty"` + StreamResponse bool `json:"streamResponse"` } var conns chan *websocket.Conn @@ -51,9 +51,9 @@ func Reload() { if HasBrowserDialer() { for len(conns) > 0 { select { - case c := <-conns: - c.Close() - default: + case c := <-conns: + c.Close() + default: } } conns = nil @@ -75,7 +75,7 @@ func Reload() { } } } else { - w.Header().Set("Access-Control-Allow-Origin", "*"); + w.Header().Set("Access-Control-Allow-Origin", "*") w.Write(webpage) } }), @@ -94,15 +94,13 @@ type webSocketExtra struct { func DialWS(uri string, ed []byte) (*websocket.Conn, error) { task := task{ - Method: "WS", - URL: uri, + Method: "WS", + URL: uri, StreamResponse: true, } - if ed != nil { - task.Extra = webSocketExtra{ - Protocol: base64.RawURLEncoding.EncodeToString(ed), - } + task.Extra = webSocketExtra{ + Protocol: base64.RawURLEncoding.EncodeToString(ed), } return dialTask(task) @@ -144,9 +142,9 @@ func httpExtraFromHeadersAndCookies(headers http.Header, cookies []*http.Cookie) func DialGet(uri string, headers http.Header, cookies []*http.Cookie) (*websocket.Conn, error) { task := task{ - Method: "GET", - URL: uri, - Extra: httpExtraFromHeadersAndCookies(headers, cookies), + Method: "GET", + URL: uri, + Extra: httpExtraFromHeadersAndCookies(headers, cookies), StreamResponse: true, } @@ -159,9 +157,9 @@ func DialPacket(method string, uri string, headers http.Header, cookies []*http. func dialWithBody(method string, uri string, headers http.Header, cookies []*http.Cookie, payload []byte) error { task := task{ - Method: method, - URL: uri, - Extra: httpExtraFromHeadersAndCookies(headers, cookies), + Method: method, + URL: uri, + Extra: httpExtraFromHeadersAndCookies(headers, cookies), StreamResponse: false, } @@ -222,4 +220,3 @@ func CheckOK(conn *websocket.Conn) error { func init() { Reload() } -