Skip to content

Commit 0686f8c

Browse files
committed
Add DefaultInterfaceMonitor.MyInterface
1 parent f13cd94 commit 0686f8c

File tree

5 files changed

+19
-2
lines changed

5 files changed

+19
-2
lines changed

monitor.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ type DefaultInterfaceMonitor interface {
3030
AndroidVPNEnabled() bool
3131
RegisterCallback(callback DefaultInterfaceUpdateCallback) *list.Element[DefaultInterfaceUpdateCallback]
3232
UnregisterCallback(element *list.Element[DefaultInterfaceUpdateCallback])
33+
RegisterMyInterface(interfaceName string)
34+
MyInterface() string
3335
}
3436

3537
type DefaultInterfaceMonitorOptions struct {

monitor_shared.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ type defaultInterfaceMonitor struct {
4242
androidVPNEnabled bool
4343
noRoute bool
4444
networkMonitor NetworkUpdateMonitor
45+
logger logger.Logger
4546
checkUpdateTimer *time.Timer
4647
element *list.Element[NetworkUpdateCallback]
4748
access sync.Mutex
4849
callbacks list.List[DefaultInterfaceUpdateCallback]
49-
logger logger.Logger
50+
myInterface string
5051
}
5152

5253
func NewDefaultInterfaceMonitor(networkMonitor NetworkUpdateMonitor, logger logger.Logger, options DefaultInterfaceMonitorOptions) (DefaultInterfaceMonitor, error) {
@@ -132,3 +133,15 @@ func (m *defaultInterfaceMonitor) emit(defaultInterface *control.Interface, flag
132133
callback(defaultInterface, flags)
133134
}
134135
}
136+
137+
func (m *defaultInterfaceMonitor) RegisterMyInterface(interfaceName string) {
138+
m.access.Lock()
139+
defer m.access.Unlock()
140+
m.myInterface = interfaceName
141+
}
142+
143+
func (m *defaultInterfaceMonitor) MyInterface() string {
144+
m.access.Lock()
145+
defer m.access.Unlock()
146+
return m.myInterface
147+
}

tun_darwin.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ func New(options Options) (Tun, error) {
8282
}
8383

8484
func (t *NativeTun) Start() error {
85+
t.options.InterfaceMonitor.RegisterMyInterface(t.options.Name)
8586
return t.setRoutes()
8687
}
8788

tun_linux.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ func (t *NativeTun) Start() error {
264264
if t.options.FileDescriptor != 0 {
265265
return nil
266266
}
267-
267+
t.options.InterfaceMonitor.RegisterMyInterface(t.options.Name)
268268
tunLink, err := netlink.LinkByName(t.options.Name)
269269
if err != nil {
270270
return err

tun_windows.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ func (t *NativeTun) Name() (string, error) {
163163
}
164164

165165
func (t *NativeTun) Start() error {
166+
t.options.InterfaceMonitor.RegisterMyInterface(t.options.Name)
166167
if !t.options.AutoRoute {
167168
return nil
168169
}

0 commit comments

Comments
 (0)