diff options
| -rw-r--r-- | mullvad-jni/src/daemon_interface.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/mullvad-jni/src/daemon_interface.rs b/mullvad-jni/src/daemon_interface.rs index fb398c5461..1565a9fd0d 100644 --- a/mullvad-jni/src/daemon_interface.rs +++ b/mullvad-jni/src/daemon_interface.rs @@ -1,8 +1,8 @@ use futures::{sync::oneshot, Future}; use mullvad_daemon::{DaemonCommandSender, ManagementCommand}; use mullvad_types::{ - account::AccountData, relay_constraints::RelaySettingsUpdate, relay_list::RelayList, - settings::Settings, states::TargetState, + account::AccountData, location::GeoIpLocation, relay_constraints::RelaySettingsUpdate, + relay_list::RelayList, settings::Settings, states::TargetState, }; use talpid_types::{net::wireguard, tunnel::TunnelStateTransition}; @@ -82,6 +82,14 @@ impl DaemonInterface { .map_err(Error::RpcError) } + pub fn get_current_location(&self) -> Result<Option<GeoIpLocation>> { + let (tx, rx) = oneshot::channel(); + + self.send_command(ManagementCommand::GetCurrentLocation(tx))?; + + Ok(rx.wait().map_err(|_| Error::NoResponse)?) + } + pub fn get_relay_locations(&self) -> Result<RelayList> { let (tx, rx) = oneshot::channel(); |
