| 35 | } |
| 36 | |
| 37 | type defaultInterfaceMonitor struct { |
| 38 | interfaceFinder control.InterfaceFinder |
| 39 | overrideAndroidVPN bool |
| 40 | underNetworkExtension bool |
| 41 | defaultInterface atomic.Pointer[control.Interface] |
| 42 | androidVPNEnabled bool |
| 43 | noRoute bool |
| 44 | networkMonitor NetworkUpdateMonitor |
| 45 | logger logger.Logger |
| 46 | checkUpdateTimer *time.Timer |
| 47 | element *list.Element[NetworkUpdateCallback] |
| 48 | access sync.Mutex |
| 49 | callbacks list.List[DefaultInterfaceUpdateCallback] |
| 50 | myInterfaces []string |
| 51 | } |
| 52 | |
| 53 | func NewDefaultInterfaceMonitor(networkMonitor NetworkUpdateMonitor, logger logger.Logger, options DefaultInterfaceMonitorOptions) (DefaultInterfaceMonitor, error) { |
| 54 | return &defaultInterfaceMonitor{ |
nothing calls this directly
no outgoing calls
no test coverage detected