summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-27 20:57:24 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-28 19:18:45 +0000
commit84935bdd79d1460d37d90513f00f032afd68b876 (patch)
treed68c36364a80d9865e871dfcbb56ab94b90efa56
parent16255a79cfc471fecffd92e207fb5ea395adf738 (diff)
downloadmullvadvpn-84935bdd79d1460d37d90513f00f032afd68b876.tar.xz
mullvadvpn-84935bdd79d1460d37d90513f00f032afd68b876.zip
Include location in `TunnelState`
-rw-r--r--gui/src/main/daemon-rpc.ts1
-rw-r--r--gui/src/shared/daemon-rpc-types.ts1
-rw-r--r--mullvad-cli/src/cmds/status.rs4
-rw-r--r--mullvad-daemon/src/lib.rs14
-rw-r--r--mullvad-types/src/states.rs11
5 files changed, 25 insertions, 6 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts
index 435edacdf7..d0b1d2eff4 100644
--- a/gui/src/main/daemon-rpc.ts
+++ b/gui/src/main/daemon-rpc.ts
@@ -250,6 +250,7 @@ const tunnelStateSchema = oneOf(
}),
),
}),
+ location: locationSchema,
}),
}),
object({
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts
index b245685f85..fbac6df9dd 100644
--- a/gui/src/shared/daemon-rpc-types.ts
+++ b/gui/src/shared/daemon-rpc-types.ts
@@ -77,6 +77,7 @@ export type DaemonEvent =
export interface ITunnelStateRelayInfo {
endpoint: ITunnelEndpoint;
+ location: ILocation;
}
export type TunnelState =
diff --git a/mullvad-cli/src/cmds/status.rs b/mullvad-cli/src/cmds/status.rs
index ab9f9e4ab5..31e96ff207 100644
--- a/mullvad-cli/src/cmds/status.rs
+++ b/mullvad-cli/src/cmds/status.rs
@@ -74,10 +74,10 @@ fn print_state(state: &TunnelState) {
print!("Tunnel status: ");
match state {
Blocked(reason) => print_blocked_reason(reason),
- Connected { endpoint } => {
+ Connected { endpoint, .. } => {
println!("Connected to {}", endpoint);
}
- Connecting { endpoint } => println!("Connecting to {}...", endpoint),
+ Connecting { endpoint, .. } => println!("Connecting to {}...", endpoint),
Disconnected => println!("Disconnected"),
Disconnecting(_) => println!("Disconnecting..."),
}
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index c887caa50f..6071306b66 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -456,8 +456,18 @@ where
fn handle_tunnel_state_transition(&mut self, tunnel_state_transition: TunnelStateTransition) {
let tunnel_state = match tunnel_state_transition {
TunnelStateTransition::Disconnected => TunnelState::Disconnected,
- TunnelStateTransition::Connecting(endpoint) => TunnelState::Connecting { endpoint },
- TunnelStateTransition::Connected(endpoint) => TunnelState::Connected { endpoint },
+ TunnelStateTransition::Connecting(endpoint) => TunnelState::Connecting {
+ endpoint,
+ location: self
+ .build_location_from_relay()
+ .expect("No relay to get location from"),
+ },
+ TunnelStateTransition::Connected(endpoint) => TunnelState::Connected {
+ endpoint,
+ location: self
+ .build_location_from_relay()
+ .expect("No relay to get location from"),
+ },
TunnelStateTransition::Disconnecting(after_disconnect) => {
TunnelState::Disconnecting(after_disconnect)
}
diff --git a/mullvad-types/src/states.rs b/mullvad-types/src/states.rs
index 9c881a1c8a..91618025ac 100644
--- a/mullvad-types/src/states.rs
+++ b/mullvad-types/src/states.rs
@@ -1,3 +1,4 @@
+use crate::location::GeoIpLocation;
use serde::{Deserialize, Serialize};
use talpid_types::{
net::TunnelEndpoint,
@@ -20,8 +21,14 @@ pub enum TargetState {
#[serde(tag = "state", content = "details")]
pub enum TunnelState {
Disconnected,
- Connecting { endpoint: TunnelEndpoint },
- Connected { endpoint: TunnelEndpoint },
+ Connecting {
+ endpoint: TunnelEndpoint,
+ location: GeoIpLocation,
+ },
+ Connected {
+ endpoint: TunnelEndpoint,
+ location: GeoIpLocation,
+ },
Disconnecting(ActionAfterDisconnect),
Blocked(BlockReason),
}