diff options
| author | Erik Larkö <erik@mullvad.net> | 2017-09-11 08:11:02 +0200 |
|---|---|---|
| committer | Erik Larkö <erik@mullvad.net> | 2017-09-13 07:32:26 +0200 |
| commit | ef3413289fe3690335474efae8a8433b6e0b0acd (patch) | |
| tree | 42ab6363e77f55d39631f68dcbf5fa6a5ac1448f /mullvad-daemon/src | |
| parent | 6f0b92ab5ed6d6b12664a052425dd94918e1110d (diff) | |
| download | mullvadvpn-ef3413289fe3690335474efae8a8433b6e0b0acd.tar.xz mullvadvpn-ef3413289fe3690335474efae8a8433b6e0b0acd.zip | |
Review fixes
Diffstat (limited to 'mullvad-daemon/src')
| -rw-r--r-- | mullvad-daemon/src/main.rs | 48 | ||||
| -rw-r--r-- | mullvad-daemon/src/settings.rs | 4 |
2 files changed, 7 insertions, 45 deletions
diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index 764427f1e1..54b1ac1747 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -56,7 +56,7 @@ use mullvad_types::relay_endpoint::RelayEndpoint; use mullvad_types::states::{DaemonState, SecurityState, TargetState}; use std::io; -use std::net::{Ipv4Addr, SocketAddr, ToSocketAddrs}; +use std::net::Ipv4Addr; use std::path::PathBuf; use std::sync::{Arc, Mutex, mpsc}; use std::thread; @@ -375,13 +375,13 @@ impl Daemon { let save_result = self.settings.set_custom_relay(relay_endpoint); match save_result.chain_err(|| "Unable to save settings") { - Ok(servers_changed) => { + Ok(relays_changed) => { Self::oneshot_send(tx, (), "set_custom_relay response"); let tunnel_needs_restart = self.state == TunnelState::Connecting || self.state == TunnelState::Connected; - if servers_changed && tunnel_needs_restart { + if relays_changed && tunnel_needs_restart { info!("Initiating tunnel restart because a custom relay was selected"); self.kill_tunnel()?; } @@ -511,50 +511,14 @@ impl Daemon { fn get_relay(&mut self) -> Result<Endpoint> { if let Some(relay_endpoint) = self.settings.get_custom_relay() { - self.parse_custom_relay(&relay_endpoint) + relay_endpoint + .to_endpoint() + .chain_err(|| "Invalid custom relay") } else { Ok(self.relay_iter.next().unwrap()) } } - fn parse_custom_relay(&self, relay_endpoint: &RelayEndpoint) -> Result<Endpoint> { - let socket_addrs: Vec<SocketAddr> = - format!("{}:{}", &relay_endpoint.host, relay_endpoint.port) - .to_socket_addrs() - .chain_err( - || { - format!( - "Invalid custom server host identifier: {}", - relay_endpoint.host - ) - }, - )? - .collect(); - - if socket_addrs.len() == 0 { - bail!("Unable to resolve {}", relay_endpoint.host) - } else { - - let socket_addr = socket_addrs[0]; - - if socket_addrs.len() > 1 { - info!( - "{} resolved to more than one IP, ignoring all but {}", - relay_endpoint.host, - socket_addr.ip() - ) - } - - Ok( - Endpoint::new( - socket_addr.ip(), - socket_addr.port(), - relay_endpoint.protocol, - ), - ) - } - } - fn spawn_tunnel_monitor(&self, relay: Endpoint, account_token: &str) -> Result<TunnelMonitor> { // Must wrap the channel in a Mutex because TunnelMonitor forces the closure to be Sync let event_tx = Arc::new(Mutex::new(self.tx.clone())); diff --git a/mullvad-daemon/src/settings.rs b/mullvad-daemon/src/settings.rs index ccced02d02..63a4325d5e 100644 --- a/mullvad-daemon/src/settings.rs +++ b/mullvad-daemon/src/settings.rs @@ -123,9 +123,7 @@ impl Settings { } pub fn set_custom_relay(&mut self, relay_endpoint: Option<RelayEndpoint>) -> Result<bool> { - let has_changed = self.custom_relay != relay_endpoint; - - if has_changed { + if self.custom_relay != relay_endpoint { match &relay_endpoint { &Some(ref data) => info!("Setting a custom relay: {}", data), &None => info!("Removing the custom relay"), |
