Ver Fonte

fix: (native conn.go) `closeMatch` logic should really close all matching conns; closes PacketConn also (#248)

Shun Zi há 1 ano atrás
pai
commit
143c84d47b
1 ficheiros alterados com 5 adições e 8 exclusões
  1. 5 8
      core/src/main/golang/native/tunnel/conn.go

+ 5 - 8
core/src/main/golang/native/tunnel/conn.go

@@ -12,20 +12,17 @@ func CloseAllConnections() {
 	})
 }
 
-func closeMatch(filter func(conn C.Conn) bool) {
+func closeMatch(filter func(conn C.Connection) bool) {
 	statistic.DefaultManager.Range(func(c statistic.Tracker) bool {
-		if cc, ok := c.(C.Conn); ok {
-			if filter(cc) {
-				_ = cc.Close()
-				return true
-			}
+		if filter(c) {
+			_ = c.Close()
 		}
-		return false
+		return true
 	})
 }
 
 func closeConnByGroup(name string) {
-	closeMatch(func(conn C.Conn) bool {
+	closeMatch(func(conn C.Connection) bool {
 		for _, c := range conn.Chains() {
 			if c == name {
 				return true