summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-02-21 17:34:20 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-02-24 12:45:07 +0000
commitefafe534031485832f0dda5caa7c98069c2e3b15 (patch)
tree3bd93510bf23a23a18bc1bdc727ea4daec29e6e9
parent0a72b6f6881b01e770f8c444fc2bb0604eac0b10 (diff)
downloadmullvadvpn-efafe534031485832f0dda5caa7c98069c2e3b15.tar.xz
mullvadvpn-efafe534031485832f0dda5caa7c98069c2e3b15.zip
Use `DaemonCommandSender` in `ManagementInterface`
-rw-r--r--mullvad-daemon/src/lib.rs10
-rw-r--r--mullvad-daemon/src/management_interface.rs18
2 files changed, 12 insertions, 16 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 557f281347..45ef3b90d2 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -387,18 +387,18 @@ impl Daemon<ManagementInterfaceEventBroadcaster> {
fn start_management_interface(
event_tx: UnboundedSender<InternalDaemonEvent>,
) -> Result<ManagementInterfaceEventBroadcaster, Error> {
- let multiplex_event_tx = IntoSender::from(event_tx.clone());
- let server = Self::start_management_interface_server(multiplex_event_tx)?;
+ let command_sender = DaemonCommandSender::new(event_tx.clone());
+ let server = Self::start_management_interface_server(command_sender)?;
let event_broadcaster = server.event_broadcaster();
Self::spawn_management_interface_wait_thread(server, event_tx);
Ok(event_broadcaster)
}
fn start_management_interface_server(
- event_tx: IntoSender<DaemonCommand, InternalDaemonEvent>,
+ command_sender: DaemonCommandSender,
) -> Result<ManagementInterfaceServer, Error> {
- let server =
- ManagementInterfaceServer::start(event_tx).map_err(Error::StartManagementInterface)?;
+ let server = ManagementInterfaceServer::start(command_sender)
+ .map_err(Error::StartManagementInterface)?;
info!("Management interface listening on {}", server.socket_path());
Ok(server)
diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs
index db403b8960..8da3d4dabf 100644
--- a/mullvad-daemon/src/management_interface.rs
+++ b/mullvad-daemon/src/management_interface.rs
@@ -1,4 +1,4 @@
-use crate::{BoxFuture, DaemonCommand, EventListener};
+use crate::{BoxFuture, DaemonCommand, DaemonCommandSender, EventListener};
use jsonrpc_core::{
futures::{future, sync, Future},
Error, ErrorCode, MetaIoHandler, Metadata,
@@ -22,7 +22,6 @@ use std::{
collections::{hash_map::Entry, HashMap},
sync::Arc,
};
-use talpid_core::mpsc::IntoSender;
use talpid_ipc;
use talpid_types::ErrorExt;
use uuid;
@@ -187,10 +186,7 @@ pub struct ManagementInterfaceServer {
}
impl ManagementInterfaceServer {
- pub fn start<T>(tunnel_tx: IntoSender<DaemonCommand, T>) -> Result<Self, talpid_ipc::Error>
- where
- T: From<DaemonCommand> + 'static + Send,
- {
+ pub fn start(tunnel_tx: DaemonCommandSender) -> Result<Self, talpid_ipc::Error> {
let rpc = ManagementInterface::new(tunnel_tx);
let subscriptions = rpc.subscriptions.clone();
@@ -280,13 +276,13 @@ impl Drop for ManagementInterfaceEventBroadcaster {
}
}
-struct ManagementInterface<T: From<DaemonCommand> + 'static + Send> {
+struct ManagementInterface {
subscriptions: Arc<RwLock<HashMap<SubscriptionId, pubsub::Sink<DaemonEvent>>>>,
- tx: IntoSender<DaemonCommand, T>,
+ tx: DaemonCommandSender,
}
-impl<T: From<DaemonCommand> + 'static + Send> ManagementInterface<T> {
- pub fn new(tx: IntoSender<DaemonCommand, T>) -> Self {
+impl ManagementInterface {
+ pub fn new(tx: DaemonCommandSender) -> Self {
ManagementInterface {
subscriptions: Default::default(),
tx,
@@ -320,7 +316,7 @@ impl<T: From<DaemonCommand> + 'static + Send> ManagementInterface<T> {
}
}
-impl<T: From<DaemonCommand> + 'static + Send> ManagementInterfaceApi for ManagementInterface<T> {
+impl ManagementInterfaceApi for ManagementInterface {
type Metadata = Meta;
fn create_new_account(&self, _: Self::Metadata) -> BoxFuture<String, Error> {