mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-28 11:17:33 +00:00
fix code review issues
Signed-off-by: Naman Sood <mail@nsood.in>
This commit is contained in:
parent
3a35bf1b75
commit
f849018e3c
@ -89,17 +89,17 @@ func Impl(logf logger.Logf, tundev *tstun.TUN, e wgengine.Engine, mc *magicsock.
|
|||||||
for ip := range ipsToBeRemoved {
|
for ip := range ipsToBeRemoved {
|
||||||
err := ipstack.RemoveAddress(nicID, ip)
|
err := ipstack.RemoveAddress(nicID, ip)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logf("netstack: could not deregister IP %v: %v", ip.String(), err)
|
logf("netstack: could not deregister IP %s: %v", ip, err)
|
||||||
} else {
|
} else {
|
||||||
logf("netstack: deregistered IP %v", ip.String())
|
logf("netstack: deregistered IP %s", ip)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for ip := range ipsToBeAdded {
|
for ip := range ipsToBeAdded {
|
||||||
err := ipstack.AddAddress(nicID, ipv4.ProtocolNumber, ip)
|
err := ipstack.AddAddress(nicID, ipv4.ProtocolNumber, ip)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logf("netstack: could not register IP %v: %v", ip.String(), err)
|
logf("netstack: could not register IP %s: %v", ip, err)
|
||||||
} else {
|
} else {
|
||||||
logf("netstack: registered IP %v", ip.String())
|
logf("netstack: registered IP %s", ip)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -109,16 +109,16 @@ type userspaceEngine struct {
|
|||||||
trimmedDisco map[tailcfg.DiscoKey]bool // set of disco keys of peers currently excluded from wireguard config
|
trimmedDisco map[tailcfg.DiscoKey]bool // set of disco keys of peers currently excluded from wireguard config
|
||||||
sentActivityAt map[netaddr.IP]*int64 // value is atomic int64 of unixtime
|
sentActivityAt map[netaddr.IP]*int64 // value is atomic int64 of unixtime
|
||||||
destIPActivityFuncs map[netaddr.IP]func()
|
destIPActivityFuncs map[netaddr.IP]func()
|
||||||
networkMapCallbacks map[*networkMapCallbackHandle]NetworkMapCallback
|
|
||||||
|
|
||||||
mu sync.Mutex // guards following; see lock order comment below
|
mu sync.Mutex // guards following; see lock order comment below
|
||||||
closing bool // Close was called (even if we're still closing)
|
closing bool // Close was called (even if we're still closing)
|
||||||
statusCallback StatusCallback
|
statusCallback StatusCallback
|
||||||
linkChangeCallback func(major bool, newState *interfaces.State)
|
linkChangeCallback func(major bool, newState *interfaces.State)
|
||||||
peerSequence []wgkey.Key
|
peerSequence []wgkey.Key
|
||||||
endpoints []string
|
endpoints []string
|
||||||
pingers map[wgkey.Key]*pinger // legacy pingers for pre-discovery peers
|
pingers map[wgkey.Key]*pinger // legacy pingers for pre-discovery peers
|
||||||
linkState *interfaces.State
|
linkState *interfaces.State
|
||||||
|
networkMapCallbacks map[*networkMapCallbackHandle]NetworkMapCallback
|
||||||
|
|
||||||
// Lock ordering: magicsock.Conn.mu, wgLock, then mu.
|
// Lock ordering: magicsock.Conn.mu, wgLock, then mu.
|
||||||
}
|
}
|
||||||
@ -209,14 +209,13 @@ func newUserspaceEngineAdvanced(conf EngineConfig) (_ Engine, reterr error) {
|
|||||||
Forward: true,
|
Forward: true,
|
||||||
}
|
}
|
||||||
e := &userspaceEngine{
|
e := &userspaceEngine{
|
||||||
timeNow: time.Now,
|
timeNow: time.Now,
|
||||||
logf: logf,
|
logf: logf,
|
||||||
reqCh: make(chan struct{}, 1),
|
reqCh: make(chan struct{}, 1),
|
||||||
waitCh: make(chan struct{}),
|
waitCh: make(chan struct{}),
|
||||||
tundev: tstun.WrapTUN(logf, conf.TUN),
|
tundev: tstun.WrapTUN(logf, conf.TUN),
|
||||||
resolver: tsdns.NewResolver(rconf),
|
resolver: tsdns.NewResolver(rconf),
|
||||||
pingers: make(map[wgkey.Key]*pinger),
|
pingers: make(map[wgkey.Key]*pinger),
|
||||||
networkMapCallbacks: make(map[*networkMapCallbackHandle]NetworkMapCallback),
|
|
||||||
}
|
}
|
||||||
e.localAddrs.Store(map[netaddr.IP]bool{})
|
e.localAddrs.Store(map[netaddr.IP]bool{})
|
||||||
e.linkState, _ = getLinkState()
|
e.linkState, _ = getLinkState()
|
||||||
@ -1266,9 +1265,16 @@ func (e *userspaceEngine) SetLinkChangeCallback(cb func(major bool, newState *in
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (e *userspaceEngine) AddNetworkMapCallback(cb NetworkMapCallback) func() {
|
func (e *userspaceEngine) AddNetworkMapCallback(cb NetworkMapCallback) func() {
|
||||||
|
e.mu.Lock()
|
||||||
|
defer e.mu.Unlock()
|
||||||
|
if e.networkMapCallbacks == nil {
|
||||||
|
e.networkMapCallbacks = make(map[*networkMapCallbackHandle]NetworkMapCallback)
|
||||||
|
}
|
||||||
handle := new(networkMapCallbackHandle)
|
handle := new(networkMapCallbackHandle)
|
||||||
e.networkMapCallbacks[handle] = cb
|
e.networkMapCallbacks[handle] = cb
|
||||||
return func() {
|
return func() {
|
||||||
|
e.mu.Lock()
|
||||||
|
defer e.mu.Unlock()
|
||||||
delete(e.networkMapCallbacks, handle)
|
delete(e.networkMapCallbacks, handle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1291,6 +1297,8 @@ func (e *userspaceEngine) SetDERPMap(dm *tailcfg.DERPMap) {
|
|||||||
|
|
||||||
func (e *userspaceEngine) SetNetworkMap(nm *controlclient.NetworkMap) {
|
func (e *userspaceEngine) SetNetworkMap(nm *controlclient.NetworkMap) {
|
||||||
e.magicConn.SetNetworkMap(nm)
|
e.magicConn.SetNetworkMap(nm)
|
||||||
|
e.mu.Lock()
|
||||||
|
defer e.mu.Unlock()
|
||||||
for _, fn := range e.networkMapCallbacks {
|
for _, fn := range e.networkMapCallbacks {
|
||||||
fn(nm)
|
fn(nm)
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ type Engine interface {
|
|||||||
// that are called when the network map updates. It returns a
|
// that are called when the network map updates. It returns a
|
||||||
// function that when called would remove the function from the
|
// function that when called would remove the function from the
|
||||||
// list of callbacks.
|
// list of callbacks.
|
||||||
AddNetworkMapCallback(NetworkMapCallback) func()
|
AddNetworkMapCallback(NetworkMapCallback) (removeCallback func())
|
||||||
|
|
||||||
// SetNetInfoCallback sets the function to call when a
|
// SetNetInfoCallback sets the function to call when a
|
||||||
// new NetInfo summary is available.
|
// new NetInfo summary is available.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user