diff options
| author | Emīls Piņķis <emils@mullvad.net> | 2019-05-23 17:41:38 +0100 |
|---|---|---|
| committer | Emīls Piņķis <emils@mullvad.net> | 2019-05-28 11:34:40 +0100 |
| commit | 87bed47b9aff0825f4295c8588332b48b06385c5 (patch) | |
| tree | b42f2651e4fac220c441d5b236d86ec900498162 | |
| parent | 7efe9b421119125f88cb0af3b39633f6cca7828b (diff) | |
| download | mullvadvpn-87bed47b9aff0825f4295c8588332b48b06385c5.tar.xz mullvadvpn-87bed47b9aff0825f4295c8588332b48b06385c5.zip | |
Remove proxy settings from openvpn::TunnelOptions
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 7 | ||||
| -rw-r--r-- | mullvad-types/src/custom_tunnel.rs | 2 | ||||
| -rw-r--r-- | mullvad-types/src/settings.rs | 13 | ||||
| -rw-r--r-- | talpid-core/src/process/openvpn.rs | 4 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/openvpn.rs | 6 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connected_state.rs | 2 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connecting_state.rs | 2 | ||||
| -rw-r--r-- | talpid-types/src/net/openvpn.rs | 3 |
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(¶ms.config.username, ¶ms.config.password) .map_err(Error::CredentialsWriteError)?; - let proxy_auth_file = Self::create_proxy_auth_file(¶ms.options.proxy) - .map_err(Error::CredentialsWriteError)?; + let proxy_auth_file = + Self::create_proxy_auth_file(¶ms.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(¶ms.options.proxy, &proxy_resources)?; + let proxy_monitor = Self::start_proxy(¶ms.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)] |
