summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorEmīls <emils@mullvad.net>2020-03-02 18:52:07 +0000
committerEmīls <emils@mullvad.net>2020-03-04 13:42:01 +0000
commit206d1d54cd64641d5bc326c81a06e61b3f176d97 (patch)
tree804f9ac33aae639edc542053efa796adf31edaef
parenta0382c3a3675b6cc20d0cb4fbdd7989df7431955 (diff)
downloadmullvadvpn-206d1d54cd64641d5bc326c81a06e61b3f176d97.tar.xz
mullvadvpn-206d1d54cd64641d5bc326c81a06e61b3f176d97.zip
Reinstate prefered constraints for OpenVPN
-rw-r--r--mullvad-daemon/src/relays.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/mullvad-daemon/src/relays.rs b/mullvad-daemon/src/relays.rs
index 3c22cde3cf..f81110badb 100644
--- a/mullvad-daemon/src/relays.rs
+++ b/mullvad-daemon/src/relays.rs
@@ -281,13 +281,17 @@ impl RelaySelector {
relay_constraints.tunnel_protocol = Constraint::Only(preferred_tunnel);
}
Constraint::Only(TunnelProtocol::OpenVpn) => {
- relay_constraints.openvpn_constraints = original_constraints.openvpn_constraints;
- if *bridge_state == BridgeState::On
- && relay_constraints.openvpn_constraints.protocol.is_any()
- {
+ let openvpn_constraints = &mut relay_constraints.openvpn_constraints;
+ *openvpn_constraints = original_constraints.openvpn_constraints;
+ if *bridge_state == BridgeState::On && openvpn_constraints.protocol.is_any() {
// FIXME: This is temporary while talpid-core only supports TCP proxies
- relay_constraints.openvpn_constraints.protocol =
- Constraint::Only(TransportProtocol::Tcp);
+ openvpn_constraints.protocol = Constraint::Only(TransportProtocol::Tcp);
+ } else if openvpn_constraints.port.is_any() && openvpn_constraints.protocol.is_any()
+ {
+ let (preferred_port, preferred_protocol) =
+ Self::preferred_openvpn_constraints(retry_attempt);
+ openvpn_constraints.port = preferred_port;
+ openvpn_constraints.protocol = Constraint::Only(preferred_protocol);
}
}
Constraint::Only(TunnelProtocol::Wireguard) => {