auto change interface for tproxy
This commit is contained in:
@ -24,7 +24,7 @@ func ipv4MaskString(bits int) string {
|
||||
return fmt.Sprintf("%d.%d.%d.%d", m[0], m[1], m[2], m[3])
|
||||
}
|
||||
|
||||
func defaultInterfaceChangeMonitor() {
|
||||
func DefaultInterfaceChangeMonitor(cb func(ifName string)) {
|
||||
t := time.NewTicker(defaultInterfaceMonitorDuration)
|
||||
defer t.Stop()
|
||||
|
||||
@ -43,6 +43,9 @@ func defaultInterfaceChangeMonitor() {
|
||||
}
|
||||
|
||||
dialer.DefaultInterface.Store(interfaceName)
|
||||
if cb != nil {
|
||||
cb(interfaceName)
|
||||
}
|
||||
|
||||
log.Warnln("[TUN] default interface changed by monitor, %s => %s", old, interfaceName)
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ func configInterfaceRouting(interfaceName string, addr netip.Prefix) error {
|
||||
}
|
||||
}
|
||||
|
||||
go defaultInterfaceChangeMonitor()
|
||||
go DefaultInterfaceChangeMonitor(nil)
|
||||
|
||||
return execRouterCmd("add", "-inet6", "2000::/3", interfaceName)
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ func configInterfaceRouting(interfaceName string, addr netip.Prefix) error {
|
||||
}
|
||||
}
|
||||
|
||||
go defaultInterfaceChangeMonitor()
|
||||
go DefaultInterfaceChangeMonitor(nil)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -203,7 +203,7 @@ startOver:
|
||||
|
||||
wintunInterfaceName = dev.Name()
|
||||
|
||||
go defaultInterfaceChangeMonitor()
|
||||
go DefaultInterfaceChangeMonitor(nil)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user