diff options
Diffstat (limited to 'mumd/src/client.rs')
| -rw-r--r-- | mumd/src/client.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/mumd/src/client.rs b/mumd/src/client.rs index 9c2c2a0..ba9cad4 100644 --- a/mumd/src/client.rs +++ b/mumd/src/client.rs @@ -1,4 +1,4 @@ -use crate::command; +use crate::{command, network::tcp::TcpEventQueue}; use crate::error::ClientError; use crate::network::{tcp, udp, ConnectionInfo}; use crate::state::State; @@ -7,13 +7,13 @@ use futures_util::{select, FutureExt}; use mumble_protocol::{Serverbound, control::ControlPacket, crypt::ClientCryptState}; use mumlib::command::{Command, CommandResponse}; use std::sync::{Arc, RwLock}; -use tokio::sync::{mpsc, oneshot, watch}; +use tokio::sync::{mpsc, watch}; pub async fn handle( state: State, command_receiver: mpsc::UnboundedReceiver<( Command, - oneshot::Sender<mumlib::error::Result<Option<CommandResponse>>>, + mpsc::UnboundedSender<mumlib::error::Result<Option<CommandResponse>>>, )>, ) -> Result<(), ClientError> { let (connection_info_sender, connection_info_receiver) = @@ -24,8 +24,7 @@ pub async fn handle( mpsc::unbounded_channel::<ControlPacket<Serverbound>>(); let (ping_request_sender, ping_request_receiver) = mpsc::unbounded_channel(); - let (response_sender, response_receiver) = - mpsc::unbounded_channel(); + let event_queue = TcpEventQueue::new(); let state = Arc::new(RwLock::new(state)); @@ -36,7 +35,7 @@ pub async fn handle( crypt_state_sender, packet_sender.clone(), packet_receiver, - response_receiver, + event_queue.clone(), ).fuse() => r.map_err(|e| ClientError::TcpError(e)), _ = udp::handle( Arc::clone(&state), @@ -46,7 +45,7 @@ pub async fn handle( _ = command::handle( state, command_receiver, - response_sender, + event_queue, ping_request_sender, packet_sender, connection_info_sender, |
