Add route.default_interface option

This commit is contained in:
世界
2022-07-15 11:51:51 +08:00
parent 12795bc504
commit 0c5e07b2d2
12 changed files with 45 additions and 23 deletions

View File

@@ -68,6 +68,7 @@ type Router struct {
interfaceBindManager control.BindManager
networkMonitor tun.NetworkUpdateMonitor
autoDetectInterface bool
defaultInterface string
interfaceMonitor tun.DefaultInterfaceMonitor
}
@@ -89,6 +90,7 @@ func NewRouter(ctx context.Context, logger log.ContextLogger, dnsLogger log.Cont
defaultDomainStrategy: dns.DomainStrategy(dnsOptions.Strategy),
interfaceBindManager: control.NewBindManager(),
autoDetectInterface: options.AutoDetectInterface,
defaultInterface: options.DefaultInterface,
}
for i, ruleOptions := range options.Rules {
routeRule, err := NewRule(router, logger, ruleOptions)
@@ -540,14 +542,18 @@ func (r *Router) AutoDetectInterface() bool {
return r.autoDetectInterface
}
func (r *Router) DefaultInterfaceName() string {
func (r *Router) DefaultInterface() string {
return r.defaultInterface
}
func (r *Router) AutoDetectInterfaceName() string {
if r.interfaceMonitor == nil {
return ""
}
return r.interfaceMonitor.DefaultInterfaceName()
}
func (r *Router) DefaultInterfaceIndex() int {
func (r *Router) AutoDetectInterfaceIndex() int {
if r.interfaceMonitor == nil {
return -1
}