Support multiple registered interfaces in interface monitor
This commit is contained in:
parent
1aa83a9f92
commit
3b51857024
2 changed files with 5 additions and 5 deletions
|
|
@ -31,7 +31,7 @@ type DefaultInterfaceMonitor interface {
|
||||||
RegisterCallback(callback DefaultInterfaceUpdateCallback) *list.Element[DefaultInterfaceUpdateCallback]
|
RegisterCallback(callback DefaultInterfaceUpdateCallback) *list.Element[DefaultInterfaceUpdateCallback]
|
||||||
UnregisterCallback(element *list.Element[DefaultInterfaceUpdateCallback])
|
UnregisterCallback(element *list.Element[DefaultInterfaceUpdateCallback])
|
||||||
RegisterMyInterface(interfaceName string)
|
RegisterMyInterface(interfaceName string)
|
||||||
MyInterface() string
|
MyInterfaces() []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type DefaultInterfaceMonitorOptions struct {
|
type DefaultInterfaceMonitorOptions struct {
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ type defaultInterfaceMonitor struct {
|
||||||
element *list.Element[NetworkUpdateCallback]
|
element *list.Element[NetworkUpdateCallback]
|
||||||
access sync.Mutex
|
access sync.Mutex
|
||||||
callbacks list.List[DefaultInterfaceUpdateCallback]
|
callbacks list.List[DefaultInterfaceUpdateCallback]
|
||||||
myInterface string
|
myInterfaces []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDefaultInterfaceMonitor(networkMonitor NetworkUpdateMonitor, logger logger.Logger, options DefaultInterfaceMonitorOptions) (DefaultInterfaceMonitor, error) {
|
func NewDefaultInterfaceMonitor(networkMonitor NetworkUpdateMonitor, logger logger.Logger, options DefaultInterfaceMonitorOptions) (DefaultInterfaceMonitor, error) {
|
||||||
|
|
@ -137,11 +137,11 @@ func (m *defaultInterfaceMonitor) emit(defaultInterface *control.Interface, flag
|
||||||
func (m *defaultInterfaceMonitor) RegisterMyInterface(interfaceName string) {
|
func (m *defaultInterfaceMonitor) RegisterMyInterface(interfaceName string) {
|
||||||
m.access.Lock()
|
m.access.Lock()
|
||||||
defer m.access.Unlock()
|
defer m.access.Unlock()
|
||||||
m.myInterface = interfaceName
|
m.myInterfaces = append(m.myInterfaces, interfaceName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *defaultInterfaceMonitor) MyInterface() string {
|
func (m *defaultInterfaceMonitor) MyInterfaces() []string {
|
||||||
m.access.Lock()
|
m.access.Lock()
|
||||||
defer m.access.Unlock()
|
defer m.access.Unlock()
|
||||||
return m.myInterface
|
return m.myInterfaces
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue