Feature: close all connections on reset

This commit is contained in:
kr328 2022-04-20 00:39:46 +08:00
parent 5dbd94e42c
commit bf59ead3b2
2 changed files with 7 additions and 0 deletions

View File

@ -36,6 +36,7 @@ func coreInit(home, versionName C.c_string, sdkVersion C.int) {
func reset() {
config.LoadDefault()
tunnel.ResetStatistic()
tunnel.CloseAllConnections()
runtime.GC()
}

View File

@ -5,6 +5,12 @@ import (
"github.com/Dreamacro/clash/tunnel/statistic"
)
func CloseAllConnections() {
for _, c := range statistic.DefaultManager.Snapshot().Connections {
_ = c.Close()
}
}
func closeMatch(filter func(conn C.Conn) bool) {
for _, c := range statistic.DefaultManager.Snapshot().Connections {
if cc, ok := c.(C.Conn); ok {