summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorEmīls Piņķis <emils@mullvad.net>2019-09-18 09:30:14 +0100
committerEmīls Piņķis <emils@mullvad.net>2019-09-18 09:30:14 +0100
commitcacc54d725f1bde0c1473d90d312d97f5fc8dcec (patch)
treed1851510fc97e760e34545a0a32bbc29c1bbbdc5
parent714684ff8069fd7338d00d57ea09d8b6a4d680c0 (diff)
parent160bf3b77b011f2e1a557b2c28219cdbbd14fee6 (diff)
downloadmullvadvpn-cacc54d725f1bde0c1473d90d312d97f5fc8dcec.tar.xz
mullvadvpn-cacc54d725f1bde0c1473d90d312d97f5fc8dcec.zip
Merge branch 'fix-bridge-udp-selection'
-rw-r--r--CHANGELOG.md2
-rw-r--r--mullvad-daemon/src/lib.rs5
-rw-r--r--mullvad-daemon/src/relays.rs7
3 files changed, 12 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d608aefd94..6520ee1cc1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -40,6 +40,8 @@ Line wrap the file at 100 chars. Th
- Fix old settings deserialization to allow migrating settings from versions older than 2019.6.
- Fix various small issues in GUI<->daemon communication.
- Make GUI WireGuard key verification resilient to failure.
+- Fix issue where daemon would try and connect with UDP when the tunnel protocol is set to OpenVPN
+ and the bridge mode is set to "On".
#### macOS
- Unregister the app properly from the OS when running the bundled `uninstall.sh` script.
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 12b7919fd0..55b1970def 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -55,7 +55,7 @@ use talpid_core::{
tunnel_state_machine::{self, TunnelCommand, TunnelParametersGenerator},
};
use talpid_types::{
- net::{openvpn, TunnelParameters},
+ net::{openvpn, TransportProtocol, TunnelParameters},
tunnel::{BlockReason, ParameterGenerationError, TunnelStateTransition},
ErrorExt,
};
@@ -618,7 +618,8 @@ where
BridgeSettings::Normal(settings) => {
let bridge_constraints = InternalBridgeConstraints {
location: settings.location.clone(),
- transport_protocol: Constraint::Only(endpoint.protocol),
+ // FIXME: This is temporary while talpid-core only supports TCP proxies
+ transport_protocol: Constraint::Only(TransportProtocol::Tcp),
};
match self.settings.get_bridge_state() {
BridgeState::On => {
diff --git a/mullvad-daemon/src/relays.rs b/mullvad-daemon/src/relays.rs
index cf6f2f4542..eda9e083e2 100644
--- a/mullvad-daemon/src/relays.rs
+++ b/mullvad-daemon/src/relays.rs
@@ -273,6 +273,13 @@ impl RelaySelector {
}
Constraint::Only(TunnelProtocol::OpenVpn) => {
relay_constraints.openvpn_constraints = original_constraints.openvpn_constraints;
+ if *bridge_state == BridgeState::On
+ && relay_constraints.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);
+ }
}
Constraint::Only(TunnelProtocol::Wireguard) => {
relay_constraints.wireguard_constraints =