summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-core/src/routing/android.rs31
1 files changed, 15 insertions, 16 deletions
diff --git a/talpid-core/src/routing/android.rs b/talpid-core/src/routing/android.rs
index d364f0769e..cfacbe3474 100644
--- a/talpid-core/src/routing/android.rs
+++ b/talpid-core/src/routing/android.rs
@@ -1,5 +1,6 @@
use crate::routing::{imp::RouteManagerCommand, RequiredRoute};
-use futures01::{stream::Stream, sync::mpsc};
+// use futures01::{stream::Stream, sync::mpsc};
+use futures::{channel::mpsc, stream::StreamExt};
use std::collections::HashSet;
/// Stub error type for routing errors on Android.
@@ -8,25 +9,23 @@ use std::collections::HashSet;
pub struct Error;
/// Stub route manager for Android
-pub struct RouteManagerImpl {
- manage_rx: mpsc::UnboundedReceiver<RouteManagerCommand>,
-}
+pub struct RouteManagerImpl {}
+
impl RouteManagerImpl {
- pub fn new(
- _required_routes: HashSet<RequiredRoute>,
- manage_rx: mpsc::UnboundedReceiver<RouteManagerCommand>,
- ) -> Result<Self, Error> {
- Ok(RouteManagerImpl { manage_rx })
+ pub async fn new(_required_routes: HashSet<RequiredRoute>) -> Result<Self, Error> {
+ Ok(RouteManagerImpl {})
}
- pub fn wait(self) -> Result<(), Error> {
- for msg in self.manage_rx.wait() {
- if let Ok(command) = msg {
- if let RouteManagerCommand::Shutdown(tx) = command {
- tx.send(()).map_err(|()| Error)?;
- break;
- }
+ pub async fn run(
+ self,
+ manage_rx: mpsc::UnboundedReceiver<RouteManagerCommand>,
+ ) -> Result<(), Error> {
+ let mut manage_rx = manage_rx.fuse();
+ while let Some(command) = manage_rx.next().await {
+ if let RouteManagerCommand::Shutdown(tx) = command {
+ tx.send(()).map_err(|()| Error)?;
+ break;
}
}
Ok(())