111
All checks were successful
Build Multi-Platform Binaries / build-frontend (push) Successful in 33s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 2m8s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 37s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 59s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 53s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 1m0s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 1m14s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 1m15s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 51s
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Successful in 37s
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Successful in 59s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Successful in 1m19s
All checks were successful
Build Multi-Platform Binaries / build-frontend (push) Successful in 33s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 2m8s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 37s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 59s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 53s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 1m0s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 1m14s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 1m15s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 51s
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Successful in 37s
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Successful in 59s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Successful in 1m19s
This commit is contained in:
@@ -261,6 +261,26 @@ func (s *Server) unregisterClient(cs *ClientSession) {
|
||||
delete(s.clients, cs.ID)
|
||||
}
|
||||
|
||||
// stopProxyListeners 停止代理监听
|
||||
func (s *Server) stopProxyListeners(cs *ClientSession) {
|
||||
cs.mu.Lock()
|
||||
defer cs.mu.Unlock()
|
||||
|
||||
// 关闭 TCP 监听器
|
||||
for port, ln := range cs.Listeners {
|
||||
ln.Close()
|
||||
s.portManager.Release(port)
|
||||
}
|
||||
cs.Listeners = make(map[int]net.Listener)
|
||||
|
||||
// 关闭 UDP 连接
|
||||
for port, conn := range cs.UDPConns {
|
||||
conn.Close()
|
||||
s.portManager.Release(port)
|
||||
}
|
||||
cs.UDPConns = make(map[int]*net.UDPConn)
|
||||
}
|
||||
|
||||
// startProxyListeners 启动代理监听
|
||||
func (s *Server) startProxyListeners(cs *ClientSession) {
|
||||
for _, rule := range cs.Rules {
|
||||
@@ -500,6 +520,18 @@ func (s *Server) PushConfigToClient(clientID string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// 停止旧的监听器
|
||||
s.stopProxyListeners(cs)
|
||||
|
||||
// 更新规则
|
||||
cs.mu.Lock()
|
||||
cs.Rules = rules
|
||||
cs.mu.Unlock()
|
||||
|
||||
// 启动新的监听器
|
||||
s.startProxyListeners(cs)
|
||||
|
||||
// 发送配置到客户端
|
||||
return s.sendProxyConfig(cs.Session, rules)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user