diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-02-20 13:38:25 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-02-24 12:45:08 +0000 |
| commit | 41177fcb3f196916bbd8d178b39324161e3f06df (patch) | |
| tree | 05cda28e94debb6168b95ed6693876e8589afcda | |
| parent | d28aecd598e951c6df16d364296a1326bfa0a90b (diff) | |
| download | mullvadvpn-41177fcb3f196916bbd8d178b39324161e3f06df.tar.xz mullvadvpn-41177fcb3f196916bbd8d178b39324161e3f06df.zip | |
Return command sender when creating daemon
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 9 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 12 |
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) { |
