ipn/ipnlocal: pass down interface state to peerapi ListenConfig hook

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2021-03-25 21:41:37 -07:00
parent 7dc88e4c1e
commit 5a62aa8047
2 changed files with 6 additions and 4 deletions

View File

@@ -143,6 +143,7 @@ func NewLocalBackend(logf logger.Logf, logid string, store ipn.StateStore, e wge
b.statusChanged = sync.NewCond(&b.statusLock)
linkMon := e.GetLinkMonitor()
b.prevIfState = linkMon.InterfaceState()
// Call our linkChange code once with the current state, and
// then also whenever it changes:
b.linkChange(false, linkMon.InterfaceState())
@@ -1446,7 +1447,7 @@ func (b *LocalBackend) initPeerAPIListener() {
b.peerAPIListeners = nil
for _, a := range b.netMap.Addresses {
ln, err := peerAPIListen(a.IP)
ln, err := peerAPIListen(a.IP, b.prevIfState)
if err != nil {
b.logf("[unexpected] peerAPI listen(%q) error: %v", a.IP, err)
continue