diff --git a/infra/conf/xray.go b/infra/conf/xray.go index cb9367de..86ba0517 100644 --- a/infra/conf/xray.go +++ b/infra/conf/xray.go @@ -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 } diff --git a/transport/internet/browser_dialer/manager.go b/transport/internet/browser_dialer/manager.go index 427c70b7..0519cabb 100644 --- a/transport/internet/browser_dialer/manager.go +++ b/transport/internet/browser_dialer/manager.go @@ -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)