aboutsummaryrefslogtreecommitdiffstats
path: root/device/mobilequirks.go
blob: 0a0080efd8d014eb5bc28201f623aec23c33ea74 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* SPDX-License-Identifier: MIT
 *
 * Copyright (C) 2017-2023 WireGuard LLC. All Rights Reserved.
 */

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.endpoint.Lock()
		peer.endpoint.disableRoaming = peer.endpoint.val != nil
		peer.endpoint.Unlock()
	}
	device.peers.RUnlock()
}