summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-04-28 12:49:42 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-04-29 12:17:20 +0200
commit5b5ba3ec6741dc132ad97e2963e8c55ef6b7caaa (patch)
tree0a6fd8f73cb3c3b50605b9549246c51ded45c6eb
parentb63304495277695dddd142b33b3d5cdf70c591c9 (diff)
downloadmullvadvpn-5b5ba3ec6741dc132ad97e2963e8c55ef6b7caaa.tar.xz
mullvadvpn-5b5ba3ec6741dc132ad97e2963e8c55ef6b7caaa.zip
Implement From for GeoIpLocation
-rw-r--r--mullvad-daemon/src/management_interface.rs21
-rw-r--r--mullvad-management-interface/src/types.rs16
2 files changed, 19 insertions, 18 deletions
diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs
index 203f723fb6..c829ee2cb4 100644
--- a/mullvad-daemon/src/management_interface.rs
+++ b/mullvad-daemon/src/management_interface.rs
@@ -10,7 +10,6 @@ use mullvad_rpc::{rest::Error as RestError, StatusCode};
use mullvad_types::settings::DnsOptions;
use mullvad_types::{
account::AccountToken,
- location::GeoIpLocation,
relay_constraints::{
BridgeConstraints, BridgeSettings, BridgeState, Constraint, Providers, RelaySettingsUpdate,
},
@@ -221,7 +220,7 @@ impl ManagementService for ManagementServiceImpl {
self.send_command_to_daemon(DaemonCommand::GetCurrentLocation(tx))?;
let result = self.wait_for_result(rx).await?;
match result {
- Some(geoip) => Ok(Response::new(convert_geoip_location(geoip))),
+ Some(geoip) => Ok(Response::new(types::GeoIpLocation::from(geoip))),
None => Err(Status::not_found("no location was found")),
}
}
@@ -801,13 +800,13 @@ fn convert_state(state: TunnelState) -> types::TunnelState {
Connecting { endpoint, location } => ProtoState::Connecting(tunnel_state::Connecting {
relay_info: Some(types::TunnelStateRelayInfo {
tunnel_endpoint: Some(types::TunnelEndpoint::from(endpoint)),
- location: location.map(convert_geoip_location),
+ location: location.map(types::GeoIpLocation::from),
}),
}),
Connected { endpoint, location } => ProtoState::Connected(tunnel_state::Connected {
relay_info: Some(types::TunnelStateRelayInfo {
tunnel_endpoint: Some(types::TunnelEndpoint::from(endpoint)),
- location: location.map(convert_geoip_location),
+ location: location.map(types::GeoIpLocation::from),
}),
}),
Disconnecting(after_disconnect) => ProtoState::Disconnecting(tunnel_state::Disconnecting {
@@ -878,20 +877,6 @@ fn convert_state(state: TunnelState) -> types::TunnelState {
types::TunnelState { state: Some(state) }
}
-fn convert_geoip_location(geoip: GeoIpLocation) -> types::GeoIpLocation {
- types::GeoIpLocation {
- ipv4: geoip.ipv4.map(|ip| ip.to_string()).unwrap_or_default(),
- ipv6: geoip.ipv6.map(|ip| ip.to_string()).unwrap_or_default(),
- country: geoip.country,
- city: geoip.city.unwrap_or_default(),
- latitude: geoip.latitude,
- longitude: geoip.longitude,
- mullvad_exit_ip: geoip.mullvad_exit_ip,
- hostname: geoip.hostname.unwrap_or_default(),
- bridge_hostname: geoip.bridge_hostname.unwrap_or_default(),
- }
-}
-
pub struct ManagementInterfaceServer {
subscriptions: Arc<RwLock<Vec<EventsListenerSender>>>,
socket_path: String,
diff --git a/mullvad-management-interface/src/types.rs b/mullvad-management-interface/src/types.rs
index ae3d94f29c..2ddd760f10 100644
--- a/mullvad-management-interface/src/types.rs
+++ b/mullvad-management-interface/src/types.rs
@@ -5,6 +5,22 @@ use std::convert::TryFrom;
tonic::include_proto!("mullvad_daemon.management_interface");
+impl From<mullvad_types::location::GeoIpLocation> for GeoIpLocation {
+ fn from(geoip: mullvad_types::location::GeoIpLocation) -> GeoIpLocation {
+ GeoIpLocation {
+ ipv4: geoip.ipv4.map(|ip| ip.to_string()).unwrap_or_default(),
+ ipv6: geoip.ipv6.map(|ip| ip.to_string()).unwrap_or_default(),
+ country: geoip.country,
+ city: geoip.city.unwrap_or_default(),
+ latitude: geoip.latitude,
+ longitude: geoip.longitude,
+ mullvad_exit_ip: geoip.mullvad_exit_ip,
+ hostname: geoip.hostname.unwrap_or_default(),
+ bridge_hostname: geoip.bridge_hostname.unwrap_or_default(),
+ }
+ }
+}
+
impl From<talpid_types::net::TunnelEndpoint> for TunnelEndpoint {
fn from(endpoint: talpid_types::net::TunnelEndpoint) -> Self {
use talpid_types::net;