From 27b8b29ef83be33ff4c047079ee17a7fbb46fbaa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 26 Apr 2026 07:44:58 +0000 Subject: [PATCH] refactor: remove browser dialer env reload path and refresh proto metadata Agent-Logs-Url: https://github.com/XTLS/Xray-core/sessions/e3502f01-e171-4e6f-9ae7-dc29b6682951 Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com> --- transport/internet/browser_dialer/dialer.go | 59 +++++---------------- transport/internet/config.pb.go | 2 +- 2 files changed, 14 insertions(+), 47 deletions(-) diff --git a/transport/internet/browser_dialer/dialer.go b/transport/internet/browser_dialer/dialer.go index f7088d52..0028f6f9 100644 --- a/transport/internet/browser_dialer/dialer.go +++ b/transport/internet/browser_dialer/dialer.go @@ -7,13 +7,13 @@ import ( "encoding/base64" "encoding/json" stderrors "errors" + "net" "net/http" "sync" "time" "github.com/gorilla/websocket" "github.com/xtls/xray-core/common/errors" - "github.com/xtls/xray-core/common/platform" "github.com/xtls/xray-core/common/uuid" ) @@ -27,8 +27,6 @@ type task struct { StreamResponse bool `json:"streamResponse"` } -var conns chan *websocket.Conn -var server *http.Server var sockoptDialers map[string]*dialerInstance var mu sync.Mutex @@ -41,32 +39,12 @@ var upgrader = &websocket.Upgrader{ }, } -// Used by external projects when using xray as a go module -func Reload() { - addr := getEnvAddress() - mu.Lock() - - closeDialerInstance(&dialerInstance{conns: conns, server: server}) - conns = nil - server = nil - - var dialer *dialerInstance - if addr != "" { - dialer = newDialerInstance(addr) - conns = dialer.conns - server = dialer.server - } - mu.Unlock() - - startDialerInstance(dialer) -} - -func HasBrowserDialer() bool { - return conns != nil -} - func HasBrowserDialerWithAddress(addr string) bool { - return connsByAddress(addr) != nil + if addr == "" { + return false + } + _, _, err := net.SplitHostPort(addr) + return err == nil } type webSocketExtra struct { @@ -78,10 +56,6 @@ type dialerInstance struct { server *http.Server } -func getEnvAddress() string { - return platform.NewEnvFlag(platform.BrowserDialerAddress).GetValue(func() string { return "" }) -} - func newDialerInstance(addr string) *dialerInstance { token := uuid.New() csrfToken := token.String() @@ -275,7 +249,7 @@ func dialTaskWithAddress(addr string, task task) (*websocket.Conn, error) { if addr != "" { return nil, errors.New("browser dialer is not configured for sockopt.browserDialer: ", addr) } - return nil, errors.New("browser dialer is not configured; set sockopt.browserDialer or env ", platform.BrowserDialerAddress) + return nil, errors.New("browser dialer is not configured; set sockopt.browserDialer") } var conn *websocket.Conn @@ -308,19 +282,12 @@ func CheckOK(conn *websocket.Conn) error { } func connsByAddress(addr string) chan *websocket.Conn { - if addr != "" { - dialer := getDialerByAddress(addr) - if dialer == nil { - return nil - } - return dialer.conns + if addr == "" { + return nil } - if HasBrowserDialer() { - return conns + dialer := getDialerByAddress(addr) + if dialer == nil { + return nil } - return nil -} - -func init() { - Reload() + return dialer.conns } diff --git a/transport/internet/config.pb.go b/transport/internet/config.pb.go index 2fea7a48..3995a83d 100644 --- a/transport/internet/config.pb.go +++ b/transport/internet/config.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v3.21.12 +// protoc v6.33.5 // source: transport/internet/config.proto package internet