From 64c0f526fd6ab36e0442ae8b8e2d2d2c3ef577ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Tue, 12 Nov 2024 14:29:11 +0800 Subject: [PATCH] Fix check interface --- go.mod | 2 +- go.sum | 4 ++-- monitor_android.go | 2 +- monitor_darwin.go | 2 +- monitor_linux_default.go | 2 +- monitor_windows.go | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index fc08033..50b86dc 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/sagernet/gvisor v0.0.0-20241021032506-a4324256e4a3 github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a github.com/sagernet/nftables v0.3.0-beta.4 - github.com/sagernet/sing v0.6.0-alpha.5 + github.com/sagernet/sing v0.6.0-alpha.6 go4.org/netipx v0.0.0-20231129151722-fdeea329fbba golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/net v0.26.0 diff --git a/go.sum b/go.sum index e21f79e..b13c365 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a h1:ObwtHN2VpqE0ZN github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM= github.com/sagernet/nftables v0.3.0-beta.4 h1:kbULlAwAC3jvdGAC1P5Fa3GSxVwQJibNenDW2zaXr8I= github.com/sagernet/nftables v0.3.0-beta.4/go.mod h1:OQXAjvjNGGFxaTgVCSTRIhYB5/llyVDeapVoENYBDS8= -github.com/sagernet/sing v0.6.0-alpha.5 h1:AQHBy2It7mSefP9eaic03yymaxPA2IPsPIClLT+IM0I= -github.com/sagernet/sing v0.6.0-alpha.5/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak= +github.com/sagernet/sing v0.6.0-alpha.6 h1:R0abM8ZeazyAKo9d3DNxtrgW17g3tZAD8al7O5+ADOw= +github.com/sagernet/sing v0.6.0-alpha.6/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= diff --git a/monitor_android.go b/monitor_android.go index 255ce41..d058169 100644 --- a/monitor_android.go +++ b/monitor_android.go @@ -58,7 +58,7 @@ func (m *defaultInterfaceMonitor) checkUpdate() error { } m.defaultInterface.Store(newInterface) var event int - if oldInterface == nil || oldInterface.Name != newInterface.Name || oldInterface.Index != newInterface.Index { + if oldInterface == nil || !oldInterface.Equals(*newInterface) { event |= EventInterfaceUpdate } if oldVPNEnabled != m.androidVPNEnabled { diff --git a/monitor_darwin.go b/monitor_darwin.go index 3bf6ac8..7529820 100644 --- a/monitor_darwin.go +++ b/monitor_darwin.go @@ -171,7 +171,7 @@ func (m *defaultInterfaceMonitor) checkUpdate() error { return E.Cause(err, "find updated interface: ", defaultInterface.Name) } m.defaultInterface.Store(newInterface) - if oldInterface != nil && oldInterface.Name == newInterface.Name && oldInterface.Index == newInterface.Index { + if oldInterface != nil && oldInterface.Equals(*newInterface) { return nil } m.emit(EventInterfaceUpdate) diff --git a/monitor_linux_default.go b/monitor_linux_default.go index db8049f..0cb6b19 100644 --- a/monitor_linux_default.go +++ b/monitor_linux_default.go @@ -31,7 +31,7 @@ func (m *defaultInterfaceMonitor) checkUpdate() error { return E.Cause(err, "find updated interface: ", link.Attrs().Name) } m.defaultInterface.Store(newInterface) - if oldInterface != nil && oldInterface.Name == newInterface.Name && oldInterface.Index == newInterface.Index { + if oldInterface != nil && oldInterface.Equals(*newInterface) { return nil } m.emit(EventInterfaceUpdate) diff --git a/monitor_windows.go b/monitor_windows.go index 1eae257..38de4ab 100644 --- a/monitor_windows.go +++ b/monitor_windows.go @@ -108,7 +108,7 @@ func (m *defaultInterfaceMonitor) checkUpdate() error { return E.Cause(err, "find updated interface: ", alias) } m.defaultInterface.Store(newInterface) - if oldInterface != nil && oldInterface.Name == newInterface.Name && oldInterface.Index == newInterface.Index { + if oldInterface != nil && !oldInterface.Equals(*newInterface) { return nil } m.emit(EventInterfaceUpdate)