summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-09-24 15:25:26 +0200
committerDavid Lönnhager <david.l@mullvad.net>2025-10-02 12:46:59 +0200
commitcccb2c3fef30ed26b8dc4d64823f8430961f08e4 (patch)
tree90fab644927c6f15e029274dde7020c3cf6cc0f5
parent4f18258ccf9a2e438ce3728a98bdf95a5401de2b (diff)
downloadmullvadvpn-cccb2c3fef30ed26b8dc4d64823f8430961f08e4.tar.xz
mullvadvpn-cccb2c3fef30ed26b8dc4d64823f8430961f08e4.zip
Append LWO to retry order
-rw-r--r--docs/relay-selector.md4
-rw-r--r--mullvad-relay-selector/src/relay_selector/mod.rs3
-rw-r--r--mullvad-relay-selector/tests/relay_selector.rs3
3 files changed, 8 insertions, 2 deletions
diff --git a/docs/relay-selector.md b/docs/relay-selector.md
index f400a632a0..0d44d0fff3 100644
--- a/docs/relay-selector.md
+++ b/docs/relay-selector.md
@@ -59,6 +59,7 @@ constraints the following default ones will take effect
- The fourth attempt will connect to a Wireguard relay using QUIC for obfuscation
- The fifth attempt will connect to a Wireguard relay on a random port using [UDP2TCP obfuscation](https://github.com/mullvad/udp-over-tcp)
- The sixth attempt will connect to a Wireguard relay over IPv6 on a random port using UDP2TCP obfuscation (if IPv6 is configured on the host)
+- The seventh attempt will connect to a Wireguard relay using LWO
#### Tunnel protocol is OpenVPN
@@ -136,8 +137,7 @@ have bridges that support UDP tunnels over TCP bridges, this behavior should be
changing the tunnel constraints to ones that do not support bridges (WireGuard, OpenVPN over UDP)
will indirectly change the bridge state to _Auto_ if it was previously set to _On_.
-
### Obfuscator caveats
-There are three types of obfuscators - _udp2tcp_, _shadowsocks_ and _quic_.
+There are four types of obfuscators - _udp2tcp_, _shadowsocks_, _quic_, and _lwo_.
They are used if the obfuscation mode is set _Auto_ and the user has selected WireGuard to be the only tunnel protocol to be used.
diff --git a/mullvad-relay-selector/src/relay_selector/mod.rs b/mullvad-relay-selector/src/relay_selector/mod.rs
index b286d8f38b..d68e570c5c 100644
--- a/mullvad-relay-selector/src/relay_selector/mod.rs
+++ b/mullvad-relay-selector/src/relay_selector/mod.rs
@@ -80,6 +80,9 @@ pub static WIREGUARD_RETRY_ORDER: LazyLock<Vec<RelayQuery>> = LazyLock::new(|| {
.udp2tcp()
.ip_version(IpVersion::V6)
.build(),
+ // 7
+ #[cfg(not(target_os = "android"))]
+ RelayQueryBuilder::wireguard().lwo().build(),
]
});
diff --git a/mullvad-relay-selector/tests/relay_selector.rs b/mullvad-relay-selector/tests/relay_selector.rs
index 30115d136d..9249c371ea 100644
--- a/mullvad-relay-selector/tests/relay_selector.rs
+++ b/mullvad-relay-selector/tests/relay_selector.rs
@@ -340,6 +340,9 @@ fn assert_wireguard_retry_order() {
.udp2tcp()
.ip_version(IpVersion::V6)
.build(),
+ // 7
+ #[cfg(not(target_os = "android"))]
+ RelayQueryBuilder::wireguard().lwo().build(),
];
assert!(