aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/network
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-01-01 22:32:12 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-01-01 22:40:08 +0100
commit1c8b7316503d3ab710d3d3ec241b85e76b9a42be (patch)
tree95e85a9f7bd26b6901e6cbe5e9ca29f8d60053e5 /mumd/src/network
parent67364577263943e815be9ba700c10845698e116d (diff)
downloadmum-1c8b7316503d3ab710d3d3ec241b85e76b9a42be.tar.gz
clippy pass
Diffstat (limited to 'mumd/src/network')
-rw-r--r--mumd/src/network/udp.rs29
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