From 4efde6372e63823a02c0a06bfb913f0b21d09400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Mon, 3 Jun 2024 22:16:12 +0800 Subject: [PATCH] Do not submit EventNoRoute repeatedly --- monitor_shared.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/monitor_shared.go b/monitor_shared.go index 0cf80fe..f456a78 100644 --- a/monitor_shared.go +++ b/monitor_shared.go @@ -42,6 +42,7 @@ type defaultInterfaceMonitor struct { defaultInterfaceName string defaultInterfaceIndex int androidVPNEnabled bool + noRoute bool networkMonitor NetworkUpdateMonitor checkUpdateTimer *time.Timer element *list.Element[NetworkUpdateCallback] @@ -86,11 +87,16 @@ func (m *defaultInterfaceMonitor) postCheckUpdate() { } err = m.checkUpdate() if errors.Is(err, ErrNoRoute) { - m.defaultInterfaceName = "" - m.defaultInterfaceIndex = -1 - m.emit(EventNoRoute) + if !m.noRoute { + m.noRoute = true + m.defaultInterfaceName = "" + m.defaultInterfaceIndex = -1 + m.emit(EventNoRoute) + } } else if err != nil { m.logger.Error("check interface: ", err) + } else { + m.noRoute = false } }