mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
net/interfaces: include DefaultRouteInterface in interfaces.State
And log it in wgengine on change. Changing bug in #643. Updates #643
This commit is contained in:
parent
75225368a4
commit
b97aac1718
@ -163,6 +163,10 @@ type State struct {
|
|||||||
// considered "expensive", which currently means LTE/etc
|
// considered "expensive", which currently means LTE/etc
|
||||||
// instead of Wifi. This field is not populated by GetState.
|
// instead of Wifi. This field is not populated by GetState.
|
||||||
IsExpensive bool
|
IsExpensive bool
|
||||||
|
|
||||||
|
// DefaultRouteInterface is the interface name for the machine's default route.
|
||||||
|
// It is not yet populated on all OSes.
|
||||||
|
DefaultRouteInterface string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *State) Equal(s2 *State) bool {
|
func (s *State) Equal(s2 *State) bool {
|
||||||
@ -198,6 +202,7 @@ func GetState() (*State, error) {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
s.DefaultRouteInterface, _ = DefaultRouteInterface()
|
||||||
return s, nil
|
return s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
15
net/interfaces/interfaces_defaultrouteif_todo.go
Normal file
15
net/interfaces/interfaces_defaultrouteif_todo.go
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build !linux
|
||||||
|
|
||||||
|
package interfaces
|
||||||
|
|
||||||
|
import "errors"
|
||||||
|
|
||||||
|
var errTODO = errors.New("TODO")
|
||||||
|
|
||||||
|
func DefaultRouteInterface() (string, error) {
|
||||||
|
return "TODO", errTODO
|
||||||
|
}
|
@ -212,6 +212,7 @@ func newUserspaceEngineAdvanced(conf EngineConfig) (_ Engine, reterr error) {
|
|||||||
}
|
}
|
||||||
e.localAddrs.Store(map[packet.IP]bool{})
|
e.localAddrs.Store(map[packet.IP]bool{})
|
||||||
e.linkState, _ = getLinkState()
|
e.linkState, _ = getLinkState()
|
||||||
|
logf("link state: %+v", e.linkState)
|
||||||
|
|
||||||
// Respond to all pings only in fake mode.
|
// Respond to all pings only in fake mode.
|
||||||
if conf.Fake {
|
if conf.Fake {
|
||||||
@ -1105,7 +1106,11 @@ func (e *userspaceEngine) LinkChange(isExpensive bool) {
|
|||||||
cur.IsExpensive = isExpensive
|
cur.IsExpensive = isExpensive
|
||||||
needRebind := e.setLinkState(cur)
|
needRebind := e.setLinkState(cur)
|
||||||
|
|
||||||
e.logf("LinkChange(isExpensive=%v); needsRebind=%v", isExpensive, needRebind)
|
if needRebind {
|
||||||
|
e.logf("LinkChange: major, rebinding. New state: %+v", cur)
|
||||||
|
} else {
|
||||||
|
e.logf("LinkChange: minor")
|
||||||
|
}
|
||||||
|
|
||||||
why := "link-change-minor"
|
why := "link-change-minor"
|
||||||
if needRebind {
|
if needRebind {
|
||||||
|
Loading…
Reference in New Issue
Block a user