summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-12-14 15:54:16 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-01-03 17:20:20 +0100
commit9f26425fedadaf472ba868889a1e4b012181b7d6 (patch)
tree70d0fe31c8239456c956bd8540330d11cc43d8e6
parenta9ff5f393bd165f57bfd7f225c79710373559364 (diff)
downloadmullvadvpn-9f26425fedadaf472ba868889a1e4b012181b7d6.tar.xz
mullvadvpn-9f26425fedadaf472ba868889a1e4b012181b7d6.zip
Stop forcing OpenVPN to be used when the bridge state is set to 'on'
-rw-r--r--mullvad-daemon/src/relays.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/mullvad-daemon/src/relays.rs b/mullvad-daemon/src/relays.rs
index 803deac988..1c0249ba44 100644
--- a/mullvad-daemon/src/relays.rs
+++ b/mullvad-daemon/src/relays.rs
@@ -352,17 +352,13 @@ impl RelaySelector {
retry_attempt: u32,
wg_key_exists: bool,
) -> RelayConstraints {
- let (preferred_port, preferred_protocol, preferred_tunnel) =
- if bridge_state != BridgeState::On {
- self.preferred_tunnel_constraints(
- retry_attempt,
- &original_constraints.location,
- &original_constraints.providers,
- wg_key_exists,
- )
- } else {
- (Constraint::Any, TransportProtocol::Tcp, TunnelType::OpenVpn)
- };
+ let (preferred_port, preferred_protocol, preferred_tunnel) = self
+ .preferred_tunnel_constraints(
+ retry_attempt,
+ &original_constraints.location,
+ &original_constraints.providers,
+ wg_key_exists,
+ );
let mut relay_constraints = original_constraints.clone();
relay_constraints.openvpn_constraints = Default::default();
@@ -372,9 +368,14 @@ impl RelaySelector {
match original_constraints.tunnel_protocol {
// If no tunnel protocol is selected, use preferred constraints
Constraint::Any => {
- if original_constraints.openvpn_constraints.port.is_any()
- || bridge_state == BridgeState::On
- {
+ if bridge_state == BridgeState::On {
+ relay_constraints.openvpn_constraints = OpenVpnConstraints {
+ port: Constraint::Only(TransportPort {
+ protocol: TransportProtocol::Tcp,
+ port: Constraint::Any,
+ }),
+ };
+ } else if original_constraints.openvpn_constraints.port.is_any() {
relay_constraints.openvpn_constraints = OpenVpnConstraints {
port: Constraint::Only(TransportPort {
protocol: preferred_protocol,
@@ -400,7 +401,6 @@ impl RelaySelector {
let openvpn_constraints = &mut relay_constraints.openvpn_constraints;
*openvpn_constraints = original_constraints.openvpn_constraints;
if bridge_state == BridgeState::On && openvpn_constraints.port.is_any() {
- // FIXME: This is temporary while talpid-core only supports TCP proxies
openvpn_constraints.port = Constraint::Only(TransportPort {
protocol: TransportProtocol::Tcp,
port: Constraint::Any,