aboutsummaryrefslogtreecommitdiffstats
path: root/device/mobilequirks.go
diff options
context:
space:
mode:
Diffstat (limited to 'device/mobilequirks.go')
-rw-r--r--device/mobilequirks.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/device/mobilequirks.go b/device/mobilequirks.go
new file mode 100644
index 0000000..af4be31
--- /dev/null
+++ b/device/mobilequirks.go
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: MIT
+ *
+ * Copyright (C) 2017-2025 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()
+}