device: make new peers inherit broken mobile semantics
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
e3134bf665
commit
111e0566dc
|
@ -44,6 +44,7 @@ type Device struct {
|
|||
netlinkCancel *rwcancel.RWCancel
|
||||
port uint16 // listening port
|
||||
fwmark uint32 // mark value (0 = disabled)
|
||||
brokenRoaming bool
|
||||
}
|
||||
|
||||
staticIdentity struct {
|
||||
|
|
|
@ -5,7 +5,10 @@
|
|||
|
||||
package device
|
||||
|
||||
// DisableSomeRoamingForBrokenMobileSemantics should ideally be called before peers are created,
|
||||
// though it will try to deal with it, and race maybe, if called after.
|
||||
func (device *Device) DisableSomeRoamingForBrokenMobileSemantics() {
|
||||
device.net.brokenRoaming = true
|
||||
device.peers.RLock()
|
||||
for _, peer := range device.peers.keyMap {
|
||||
peer.Lock()
|
||||
|
|
|
@ -261,6 +261,7 @@ func (peer *ipcSetPeer) handlePostConfig() {
|
|||
if peer.Peer == nil {
|
||||
return
|
||||
}
|
||||
peer.disableRoaming = peer.device.net.brokenRoaming && peer.endpoint != nil
|
||||
if !peer.dummy && peer.device.isUp() {
|
||||
peer.Start()
|
||||
if peer.pkaOn {
|
||||
|
|
Loading…
Reference in a new issue