summaryrefslogtreecommitdiffhomepage
path: root/mullvad-daemon/src
diff options
context:
space:
mode:
authorErik Larkö <erik@mullvad.net>2017-09-11 08:11:02 +0200
committerErik Larkö <erik@mullvad.net>2017-09-13 07:32:26 +0200
commitef3413289fe3690335474efae8a8433b6e0b0acd (patch)
tree42ab6363e77f55d39631f68dcbf5fa6a5ac1448f /mullvad-daemon/src
parent6f0b92ab5ed6d6b12664a052425dd94918e1110d (diff)
downloadmullvadvpn-ef3413289fe3690335474efae8a8433b6e0b0acd.tar.xz
mullvadvpn-ef3413289fe3690335474efae8a8433b6e0b0acd.zip
Review fixes
Diffstat (limited to 'mullvad-daemon/src')
-rw-r--r--mullvad-daemon/src/main.rs48
-rw-r--r--mullvad-daemon/src/settings.rs4
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"),