aboutsummaryrefslogtreecommitdiffstats
path: root/mumd
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-10-13 23:58:51 +0200
committerGustav Sörnäs <gustav@sornas.net>2020-10-13 23:58:51 +0200
commitccd7cbac5e8080240988b01cc9f2e64af9082f5d (patch)
treead5c71ff8c6f3320e768adf5996407962ed64450 /mumd
parent321d0400bb8760ab215a602cc74f36a2a7dd6788 (diff)
downloadmum-ccd7cbac5e8080240988b01cc9f2e64af9082f5d.tar.gz
send tcp pings via packet sender
Co-authored-by: Eskil Queseth <eskilq@kth.se>
Diffstat (limited to 'mumd')
-rw-r--r--mumd/src/network/tcp.rs6
-rw-r--r--mumd/src/state.rs1
2 files changed, 4 insertions, 3 deletions
diff --git a/mumd/src/network/tcp.rs b/mumd/src/network/tcp.rs
index 3fc36a3..f86447b 100644
--- a/mumd/src/network/tcp.rs
+++ b/mumd/src/network/tcp.rs
@@ -82,14 +82,14 @@ async fn authenticate(sink: Arc<Mutex<TcpSender>>, username: String) {
sink.lock().unwrap().send(msg.into()).await.unwrap();
}
-//TODO move somewhere else (main?) and send through packet_sender
-async fn send_pings(sink: Arc<Mutex<TcpSender>>, delay_seconds: u64) {
+async fn send_pings(packet_sender: mpsc::UnboundedSender<ControlPacket<Serverbound>>,
+ delay_seconds: u64) {
let mut interval = time::interval(Duration::from_secs(delay_seconds));
loop {
interval.tick().await;
trace!("Sending ping");
let msg = msgs::Ping::new();
- sink.lock().unwrap().send(msg.into()).await.unwrap();
+ packet_sender.send(msg.into()).unwrap();
}
}
diff --git a/mumd/src/state.rs b/mumd/src/state.rs
index 74b2037..cd266d7 100644
--- a/mumd/src/state.rs
+++ b/mumd/src/state.rs
@@ -90,6 +90,7 @@ impl State {
pub fn audio(&self) -> &Audio { &self.audio }
pub fn audio_mut(&mut self) -> &mut Audio { &mut self.audio }
+ pub fn packet_sender(&self) -> mpsc::UnboundedSender<ControlPacket<Serverbound>> { self.packet_sender.clone() }
pub fn initialized_receiver(&self) -> watch::Receiver<bool> { self.initialized_watcher.1.clone() }
pub fn server_mut(&mut self) -> &mut Server { &mut self.server }
pub fn username(&self) -> &str { &self.username }