A peer.endpoint never becomes nil after being not-nil, so creation is
the only time we actually need to set this. This prevents a race from
when the variable is actually used elsewhere, and allows us to avoid an
expensive atomic.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
if peer.Peer == nil || peer.dummy {
return
}
- peer.disableRoaming = peer.device.net.brokenRoaming && peer.endpoint != nil
+ if peer.created {
+ peer.disableRoaming = peer.device.net.brokenRoaming && peer.endpoint != nil
+ }
if peer.device.isUp() {
peer.Start()
if peer.pkaOn {