summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-02-20 13:38:25 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-02-24 12:45:08 +0000
commit41177fcb3f196916bbd8d178b39324161e3f06df (patch)
tree05cda28e94debb6168b95ed6693876e8589afcda
parentd28aecd598e951c6df16d364296a1326bfa0a90b (diff)
downloadmullvadvpn-41177fcb3f196916bbd8d178b39324161e3f06df.tar.xz
mullvadvpn-41177fcb3f196916bbd8d178b39324161e3f06df.zip
Return command sender when creating daemon
-rw-r--r--mullvad-daemon/src/lib.rs9
-rw-r--r--mullvad-jni/src/lib.rs12
2 files changed, 11 insertions, 10 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 97493fb08b..595320840c 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -426,10 +426,11 @@ where
resource_dir: PathBuf,
cache_dir: PathBuf,
#[cfg(target_os = "android")] android_context: AndroidContext,
- ) -> Result<Self, Error> {
+ ) -> Result<(Self, DaemonCommandSender), Error> {
let (tx, rx) = futures::sync::mpsc::unbounded();
+ let command_sender = DaemonCommandSender::new(tx.clone());
- Self::start_internal(
+ let daemon = Self::start_internal(
tx,
rx,
event_listener,
@@ -438,7 +439,9 @@ where
cache_dir,
#[cfg(target_os = "android")]
android_context,
- )
+ )?;
+
+ Ok((daemon, command_sender))
}
fn start_internal(
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 3be27632b4..30b443b434 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -167,8 +167,8 @@ fn spawn_daemon(
let jvm = android_context.jvm.clone();
match create_daemon(listener, log_dir, android_context) {
- Ok(daemon) => {
- let _ = tx.send(Ok(daemon.command_sender()));
+ Ok((daemon, command_sender)) => {
+ let _ = tx.send(Ok(command_sender));
match daemon.run() {
Ok(()) => log::info!("Mullvad daemon has stopped"),
Err(error) => log::error!("{}", error.display_chain()),
@@ -189,20 +189,18 @@ fn create_daemon(
listener: JniEventListener,
log_dir: PathBuf,
android_context: AndroidContext,
-) -> Result<Daemon<JniEventListener>, Error> {
+) -> Result<(Daemon<JniEventListener>, DaemonCommandSender), Error> {
let resource_dir = mullvad_paths::get_resource_dir();
let cache_dir = mullvad_paths::cache_dir().map_err(Error::GetCacheDir)?;
- let daemon = Daemon::start_with_event_listener(
+ Daemon::start_with_event_listener(
listener,
Some(log_dir),
resource_dir,
cache_dir,
android_context,
)
- .map_err(Error::InitializeDaemon)?;
-
- Ok(daemon)
+ .map_err(Error::InitializeDaemon)
}
fn notify_daemon_stopped(jvm: Arc<JavaVM>, daemon_object: GlobalRef) {