fix: split browser dialer configure and listener startup phases

Agent-Logs-Url: https://github.com/XTLS/Xray-core/sessions/bd037532-6fba-48d4-bf72-77fbb3bf8fc4

Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-27 11:50:15 +00:00
committed by GitHub
parent 286a702bfa
commit c423317305
2 changed files with 10 additions and 0 deletions

View File

@@ -632,6 +632,9 @@ func (c *Config) Build() (*core.Config, error) {
if err := browser_dialer.ConfigureCollectedDialerProxyURLs(); err != nil {
return nil, errors.New("failed to configure browser dialer").Base(err)
}
if err := browser_dialer.StartCollectedDialerProxyURLs(); err != nil {
return nil, errors.New("failed to start browser dialer listeners").Base(err)
}
return config, nil
}

View File

@@ -104,6 +104,13 @@ func ConfigureCollectedDialerProxyURLs() error {
return errors.New("failed to initialize browser dialer listener for url ", browserDialerURL).Base(err)
}
}
return nil
}
func StartCollectedDialerProxyURLs() error {
if initialized {
return errors.New("browser dialer does not support dynamic add/remove; restart is required after changing configuration")
}
for listenAddr, server := range serversByListenAddr {
if err := server.start(); err != nil {
return errors.New("failed to start browser dialer listener on ", listenAddr).Base(err)