diff options
| author | Emīls <emils@mullvad.net> | 2020-03-02 18:52:07 +0000 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2020-03-04 13:42:01 +0000 |
| commit | 206d1d54cd64641d5bc326c81a06e61b3f176d97 (patch) | |
| tree | 804f9ac33aae639edc542053efa796adf31edaef | |
| parent | a0382c3a3675b6cc20d0cb4fbdd7989df7431955 (diff) | |
| download | mullvadvpn-206d1d54cd64641d5bc326c81a06e61b3f176d97.tar.xz mullvadvpn-206d1d54cd64641d5bc326c81a06e61b3f176d97.zip | |
Reinstate prefered constraints for OpenVPN
| -rw-r--r-- | mullvad-daemon/src/relays.rs | 16 |
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) => { |
