diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-04-28 12:49:42 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-04-29 12:17:20 +0200 |
| commit | 5b5ba3ec6741dc132ad97e2963e8c55ef6b7caaa (patch) | |
| tree | 0a6fd8f73cb3c3b50605b9549246c51ded45c6eb | |
| parent | b63304495277695dddd142b33b3d5cdf70c591c9 (diff) | |
| download | mullvadvpn-5b5ba3ec6741dc132ad97e2963e8c55ef6b7caaa.tar.xz mullvadvpn-5b5ba3ec6741dc132ad97e2963e8c55ef6b7caaa.zip | |
Implement From for GeoIpLocation
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 21 | ||||
| -rw-r--r-- | mullvad-management-interface/src/types.rs | 16 |
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; |
