From 714c9a554f6dce93da2a7533eb0a505f6c960f5c Mon Sep 17 00:00:00 2001 From: Kr328 Date: Sun, 3 May 2020 00:50:14 +0800 Subject: [PATCH] break connection if set proxy for selector --- core/src/main/golang/bridge/proxies.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/src/main/golang/bridge/proxies.go b/core/src/main/golang/bridge/proxies.go index 0d1b729..8f8004d 100644 --- a/core/src/main/golang/bridge/proxies.go +++ b/core/src/main/golang/bridge/proxies.go @@ -122,11 +122,26 @@ func SetSelectedProxy(name, proxy string) bool { return false } + selected := selector.Now() + if selected == proxy { + log.Infoln("Set " + name + " -> " + proxy) + return true + } + if err := selector.Set(proxy); err != nil { log.Infoln("Set %s: %s", name, err.Error()) return false } + for _, conn := range tunnel.DefaultManager.Snapshot().Connections { + for _, p := range conn.Chain() { + if p == proxy { + _ = conn.Close() + break + } + } + } + log.Infoln("Set " + name + " -> " + proxy) return true