diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-01-01 22:32:12 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-01-01 22:40:08 +0100 |
| commit | 1c8b7316503d3ab710d3d3ec241b85e76b9a42be (patch) | |
| tree | 95e85a9f7bd26b6901e6cbe5e9ca29f8d60053e5 /mumd/src/network | |
| parent | 67364577263943e815be9ba700c10845698e116d (diff) | |
| download | mum-1c8b7316503d3ab710d3d3ec241b85e76b9a42be.tar.gz | |
clippy pass
Diffstat (limited to 'mumd/src/network')
| -rw-r--r-- | mumd/src/network/udp.rs | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/mumd/src/network/udp.rs b/mumd/src/network/udp.rs index b592a60..f7eeb62 100644 --- a/mumd/src/network/udp.rs +++ b/mumd/src/network/udp.rs @@ -1,10 +1,10 @@ use crate::network::ConnectionInfo; use crate::state::{State, StatePhase}; -use log::*; use bytes::Bytes; use futures::{join, pin_mut, select, FutureExt, SinkExt, StreamExt}; use futures_util::stream::{SplitSink, SplitStream}; +use log::*; use mumble_protocol::crypt::ClientCryptState; use mumble_protocol::ping::{PingPacket, PongPacket}; use mumble_protocol::voice::{VoicePacket, VoicePacketPayload}; @@ -18,6 +18,8 @@ use tokio::net::UdpSocket; use tokio::sync::{mpsc, oneshot, watch}; use tokio_util::udp::UdpFramed; +pub type PingRequest = (u64, SocketAddr, Box<dyn FnOnce(PongPacket)>); + type UdpSender = SplitSink<UdpFramed<ClientCryptState>, (VoicePacket<Serverbound>, SocketAddr)>; type UdpReceiver = SplitStream<UdpFramed<ClientCryptState>>; @@ -89,17 +91,14 @@ async fn new_crypt_state( source: Arc<Mutex<UdpReceiver>>, ) { loop { - match crypt_state.recv().await { - Some(crypt_state) => { - info!("Received new crypt state"); - let udp_socket = UdpSocket::bind((Ipv6Addr::from(0u128), 0u16)) - .await - .expect("Failed to bind UDP socket"); - let (new_sink, new_source) = UdpFramed::new(udp_socket, crypt_state).split(); - *sink.lock().unwrap() = new_sink; - *source.lock().unwrap() = new_source; - }, - None => {}, + if let Some(crypt_state) = crypt_state.recv().await { + info!("Received new crypt state"); + let udp_socket = UdpSocket::bind((Ipv6Addr::from(0u128), 0u16)) + .await + .expect("Failed to bind UDP socket"); + let (new_sink, new_source) = UdpFramed::new(udp_socket, crypt_state).split(); + *sink.lock().unwrap() = new_sink; + *source.lock().unwrap() = new_source; } } } @@ -256,11 +255,7 @@ async fn send_voice( } pub async fn handle_pings( - mut ping_request_receiver: mpsc::UnboundedReceiver<( - u64, - SocketAddr, - Box<dyn FnOnce(PongPacket)>, - )>, + mut ping_request_receiver: mpsc::UnboundedReceiver<PingRequest>, ) { let udp_socket = UdpSocket::bind((Ipv6Addr::from(0u128), 0u16)) .await |
