diff --git a/bridge/bridge.go b/bridge/bridge.go index e372908..ea5c282 100755 --- a/bridge/bridge.go +++ b/bridge/bridge.go @@ -342,6 +342,7 @@ func (s *Bridge) SendLinkInfo(clientId int, link *conn.Link, t *file.Tunnel) (ta func (s *Bridge) ping() { ticker := time.NewTicker(time.Second * 5) + defer ticker.Stop() for { select { case <-ticker.C: diff --git a/client/control.go b/client/control.go index 3260113..5589d11 100644 --- a/client/control.go +++ b/client/control.go @@ -369,6 +369,7 @@ func sendP2PTestMsg(localConn *net.UDPConn, remoteAddr1, remoteAddr2, remoteAddr } logs.Trace("try send test packet to target %s", addr) ticker := time.NewTicker(time.Millisecond * 500) + defer ticker.Stop() for { select { case <-ticker.C: @@ -394,6 +395,7 @@ func sendP2PTestMsg(localConn *net.UDPConn, remoteAddr1, remoteAddr2, remoteAddr return } ticker := time.NewTicker(time.Second * 2) + defer ticker.Stop() for { select { case <-ticker.C: diff --git a/client/local.go b/client/local.go index 55b9df9..06057ca 100644 --- a/client/local.go +++ b/client/local.go @@ -117,6 +117,7 @@ func StartLocalServer(l *config.LocalServer, config *config.CommonConfig) error func handleUdpMonitor(config *config.CommonConfig, l *config.LocalServer) { ticker := time.NewTicker(time.Second * 1) + defer ticker.Stop() for { select { case <-ticker.C: diff --git a/lib/mux/mux.go b/lib/mux/mux.go index a43510a..02b017a 100644 --- a/lib/mux/mux.go +++ b/lib/mux/mux.go @@ -173,9 +173,9 @@ func (s *Mux) ping() { s.sendInfo(common.MUX_PING_FLAG, common.MUX_PING, now) // send the ping flag and get the latency first ticker := time.NewTicker(time.Second * 5) + defer ticker.Stop() for { if s.IsClose { - ticker.Stop() break } select { @@ -198,6 +198,7 @@ func (s *Mux) ping() { } atomic.AddUint32(&s.pingOk, 1) } + return }() } diff --git a/server/server.go b/server/server.go index 5e72617..911fde5 100644 --- a/server/server.go +++ b/server/server.go @@ -109,6 +109,7 @@ func StartNewServer(bridgePort int, cnf *file.Tunnel, bridgeType string) { func dealClientFlow() { ticker := time.NewTicker(time.Minute) + defer ticker.Stop() for { select { case <-ticker.C: @@ -430,6 +431,7 @@ func GetDashboardData() map[string]interface{} { func flowSession(m time.Duration) { ticker := time.NewTicker(m) + defer ticker.Stop() for { select { case <-ticker.C: