summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorEmīls Piņķis <emils@mullvad.net>2019-05-23 17:41:38 +0100
committerEmīls Piņķis <emils@mullvad.net>2019-05-28 11:34:40 +0100
commit87bed47b9aff0825f4295c8588332b48b06385c5 (patch)
treeb42f2651e4fac220c441d5b236d86ec900498162
parent7efe9b421119125f88cb0af3b39633f6cca7828b (diff)
downloadmullvadvpn-87bed47b9aff0825f4295c8588332b48b06385c5.tar.xz
mullvadvpn-87bed47b9aff0825f4295c8588332b48b06385c5.zip
Remove proxy settings from openvpn::TunnelOptions
-rw-r--r--mullvad-daemon/src/lib.rs7
-rw-r--r--mullvad-types/src/custom_tunnel.rs2
-rw-r--r--mullvad-types/src/settings.rs13
-rw-r--r--talpid-core/src/process/openvpn.rs4
-rw-r--r--talpid-core/src/tunnel/openvpn.rs6
-rw-r--r--talpid-core/src/tunnel_state_machine/connected_state.rs2
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs2
-rw-r--r--talpid-types/src/net/openvpn.rs3
8 files changed, 15 insertions, 24 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index eea12c18f8..6c53642c71 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -446,7 +446,8 @@ where
RelaySettings::CustomTunnelEndpoint(custom_relay) => {
self.last_generated_relay = None;
custom_relay
- .to_tunnel_parameters(self.settings.get_tunnel_options().clone())
+ // TODO(emilsp): generate proxy settings for custom tunnels
+ .to_tunnel_parameters(self.settings.get_tunnel_options().clone(), None)
.map_err(|e| {
e.display_chain_with_msg("Custom tunnel endpoint could not be resolved")
})
@@ -491,7 +492,7 @@ where
account_token: String,
retry_attempt: u32,
) -> Result<TunnelParameters> {
- let mut tunnel_options = self.settings.get_tunnel_options().clone();
+ let tunnel_options = self.settings.get_tunnel_options().clone();
let location = relay.location.as_ref().expect("Relay has no location set");
match endpoint {
MullvadEndpoint::OpenVpn(endpoint) => {
@@ -529,7 +530,6 @@ where
}
}
};
- tunnel_options.openvpn.proxy = proxy_settings;
Ok(openvpn::TunnelParameters {
config: openvpn::ConnectionConfig::new(
@@ -539,6 +539,7 @@ where
),
options: tunnel_options.openvpn,
generic_options: tunnel_options.generic,
+ proxy: proxy_settings,
}
.into())
}
diff --git a/mullvad-types/src/custom_tunnel.rs b/mullvad-types/src/custom_tunnel.rs
index ac46b609a3..9559711314 100644
--- a/mullvad-types/src/custom_tunnel.rs
+++ b/mullvad-types/src/custom_tunnel.rs
@@ -31,6 +31,7 @@ impl CustomTunnelEndpoint {
pub fn to_tunnel_parameters(
&self,
tunnel_options: TunnelOptions,
+ proxy: Option<openvpn::ProxySettings>,
) -> Result<TunnelParameters, Error> {
let ip = resolve_to_ip(&self.host)?;
let mut config = self.config.clone();
@@ -41,6 +42,7 @@ impl CustomTunnelEndpoint {
config,
options: tunnel_options.openvpn.clone(),
generic_options: tunnel_options.generic.clone(),
+ proxy,
}
.into(),
ConnectionConfig::Wireguard(connection) => wireguard::TunnelParameters {
diff --git a/mullvad-types/src/settings.rs b/mullvad-types/src/settings.rs
index 32047d31be..10e5b03298 100644
--- a/mullvad-types/src/settings.rs
+++ b/mullvad-types/src/settings.rs
@@ -207,19 +207,6 @@ impl Settings {
}
}
- pub fn set_openvpn_proxy(&mut self, proxy: Option<openvpn::ProxySettings>) -> Result<bool> {
- if let Some(ref settings) = proxy {
- openvpn::validate_proxy_settings(settings).map_err(Error::InvalidProxyData)?;
- }
-
- if self.tunnel_options.openvpn.proxy != proxy {
- self.tunnel_options.openvpn.proxy = proxy;
- self.save().map(|_| true)
- } else {
- Ok(false)
- }
- }
-
pub fn set_enable_ipv6(&mut self, enable_ipv6: bool) -> Result<bool> {
if self.tunnel_options.generic.enable_ipv6 != enable_ipv6 {
self.tunnel_options.generic.enable_ipv6 = enable_ipv6;
diff --git a/talpid-core/src/process/openvpn.rs b/talpid-core/src/process/openvpn.rs
index 50c0c61206..c3e7bfcf16 100644
--- a/talpid-core/src/process/openvpn.rs
+++ b/talpid-core/src/process/openvpn.rs
@@ -62,6 +62,7 @@ pub struct OpenVpnCommand {
plugin: Option<(PathBuf, Vec<String>)>,
log: Option<PathBuf>,
tunnel_options: net::openvpn::TunnelOptions,
+ proxy_settings: Option<net::openvpn::ProxySettings>,
tunnel_alias: Option<OsString>,
enable_ipv6: bool,
proxy_port: Option<u16>,
@@ -83,6 +84,7 @@ impl OpenVpnCommand {
plugin: None,
log: None,
tunnel_options: net::openvpn::TunnelOptions::default(),
+ proxy_settings: None,
tunnel_alias: None,
enable_ipv6: true,
proxy_port: None,
@@ -283,7 +285,7 @@ impl OpenVpnCommand {
fn proxy_arguments(&self) -> Vec<String> {
let mut args = vec![];
- match self.tunnel_options.proxy {
+ match self.proxy_settings {
Some(net::openvpn::ProxySettings::Local(ref local_proxy)) => {
args.push("--socks-proxy".to_owned());
args.push("127.0.0.1".to_owned());
diff --git a/talpid-core/src/tunnel/openvpn.rs b/talpid-core/src/tunnel/openvpn.rs
index 8186ab9683..f6174c5e7c 100644
--- a/talpid-core/src/tunnel/openvpn.rs
+++ b/talpid-core/src/tunnel/openvpn.rs
@@ -147,8 +147,8 @@ impl OpenVpnMonitor<OpenVpnCommand> {
Self::create_credentials_file(&params.config.username, &params.config.password)
.map_err(Error::CredentialsWriteError)?;
- let proxy_auth_file = Self::create_proxy_auth_file(&params.options.proxy)
- .map_err(Error::CredentialsWriteError)?;
+ let proxy_auth_file =
+ Self::create_proxy_auth_file(&params.proxy).map_err(Error::CredentialsWriteError)?;
let user_pass_file_path = user_pass_file.to_path_buf();
@@ -184,7 +184,7 @@ impl OpenVpnMonitor<OpenVpnCommand> {
log_dir,
};
- let proxy_monitor = Self::start_proxy(&params.options.proxy, &proxy_resources)?;
+ let proxy_monitor = Self::start_proxy(&params.proxy, &proxy_resources)?;
let cmd = Self::create_openvpn_cmd(
params,
diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs
index 324d2cbbc8..bc1ca6d4af 100644
--- a/talpid-core/src/tunnel_state_machine/connected_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connected_state.rs
@@ -61,7 +61,7 @@ impl ConnectedState {
fn get_endpoint_from_params(&self) -> Endpoint {
match self.tunnel_parameters {
- TunnelParameters::OpenVpn(ref config) => match config.options.proxy {
+ TunnelParameters::OpenVpn(ref config) => match config.proxy {
Some(ref proxy_settings) => proxy_settings.get_endpoint(),
None => self.tunnel_parameters.get_tunnel_endpoint().endpoint,
},
diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs
index ddb591bad0..1f6afc16ad 100644
--- a/talpid-core/src/tunnel_state_machine/connecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs
@@ -286,7 +286,7 @@ fn get_openvpn_proxy_settings(
tunnel_parameters: &TunnelParameters,
) -> &Option<openvpn::ProxySettings> {
match tunnel_parameters {
- TunnelParameters::OpenVpn(ref config) => &config.options.proxy,
+ TunnelParameters::OpenVpn(ref config) => &config.proxy,
_ => &None,
}
}
diff --git a/talpid-types/src/net/openvpn.rs b/talpid-types/src/net/openvpn.rs
index 4eaa2cb218..a763b01b12 100644
--- a/talpid-types/src/net/openvpn.rs
+++ b/talpid-types/src/net/openvpn.rs
@@ -7,6 +7,7 @@ pub struct TunnelParameters {
pub config: ConnectionConfig,
pub options: TunnelOptions,
pub generic_options: GenericTunnelOptions,
+ pub proxy: Option<ProxySettings>,
}
#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize, Serialize)]
@@ -40,8 +41,6 @@ pub struct TunnelOptions {
/// Optional argument for openvpn to try and limit TCP packet size,
/// as discussed [here](https://openvpn.net/archive/openvpn-users/2003-11/msg00154.html)
pub mssfix: Option<u16>,
- /// Proxy settings, for when the relay connection should be via a proxy.
- pub proxy: Option<ProxySettings>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]