diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-30 08:53:08 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-30 08:53:08 -0300 |
| commit | 74cf3950d47cadb91a982826b1acca3fc733b4fe (patch) | |
| tree | 848d3345a89b085ab676411cd437792aa920cdd5 | |
| parent | 56bcfed5d5ebca63be66986d58f1ccfd96b31dca (diff) | |
| parent | 6b5b25fbc9a0bcc08c9ffe2dee671243c330293e (diff) | |
| download | mullvadvpn-74cf3950d47cadb91a982826b1acca3fc733b4fe.tar.xz mullvadvpn-74cf3950d47cadb91a982826b1acca3fc733b4fe.zip | |
Merge branch 'fetch-relay-list-on-start'
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | mullvad-daemon/src/main.rs | 3 | ||||
| -rw-r--r-- | mullvad-daemon/src/relays.rs | 11 |
3 files changed, 13 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 32332e8524..37a0a438db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ Line wrap the file at 100 chars. Th `mullvad relay list locations`. - Replace WebSockets with Unix domain sockets/Named pipes for IPC. The location of the socket can be controlled with `MULLVAD_RPC_SOCKET_PATH`. +- Update the relay list if it's out of date when the daemon starts. ### Fixed - Fix incorrect window position when using external display. diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index f5672ff225..12fe4bacb3 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -243,6 +243,9 @@ impl Daemon { let management_interface_broadcaster = Self::start_management_interface(tx.clone(), cache_dir.clone())?; + // Attempt to download a fresh relay list + relay_selector.update(); + Ok(Daemon { tunnel_command_tx: Sink::wait(tunnel_command_tx), tunnel_state: TunnelStateTransition::Disconnected, diff --git a/mullvad-daemon/src/relays.rs b/mullvad-daemon/src/relays.rs index 4b0b07217e..86d4efbc51 100644 --- a/mullvad-daemon/src/relays.rs +++ b/mullvad-daemon/src/relays.rs @@ -122,7 +122,7 @@ impl ParsedRelays { pub struct RelaySelector { parsed_relays: Arc<Mutex<ParsedRelays>>, rng: ThreadRng, - _updater: RelayListUpdaterHandle, + updater: RelayListUpdaterHandle, } impl RelaySelector { @@ -148,10 +148,17 @@ impl RelaySelector { RelaySelector { parsed_relays, rng: rand::thread_rng(), - _updater: updater, + updater, } } + /// Download the newest relay list. + pub fn update(&self) { + self.updater + .send(()) + .expect("Relay list updated thread has stopped unexpectedly"); + } + /// Returns all countries and cities. The cities in the object returned does not have any /// relays in them. pub fn get_locations(&mut self) -> RelayList { |
