Ver Fonte

all: release resources when proxy closed using privilege mode

fatedier há 8 anos atrás
pai
commit
e580c7b6e6
2 ficheiros alterados com 10 adições e 0 exclusões
  1. 6 0
      src/frp/models/server/config.go
  2. 4 0
      src/frp/models/server/server.go

+ 6 - 0
src/frp/models/server/config.go

@@ -294,3 +294,9 @@ func CreateProxy(s *ProxyServer) error {
 	ProxyServers[s.Name] = s
 	return nil
 }
+
+func DeleteProxy(proxyName string) {
+	ProxyServersMutex.Lock()
+	defer ProxyServersMutex.Unlock()
+	delete(ProxyServers, proxyName)
+}

+ 4 - 0
src/frp/models/server/server.go

@@ -186,6 +186,10 @@ func (p *ProxyServer) Close() {
 			p.CtlConn.Close()
 		}
 	}
+	// if the proxy created by PrivilegeMode, delete it when closed
+	if p.PrivilegeMode {
+		DeleteProxy(p.Name)
+	}
 	p.Unlock()
 }