]> git.lizzy.rs Git - mt_rudp.git/commitdiff
pings
authorLizzy Fleckenstein <eliasfleckenstein@web.de>
Fri, 6 Jan 2023 17:05:23 +0000 (18:05 +0100)
committerLizzy Fleckenstein <eliasfleckenstein@web.de>
Fri, 6 Jan 2023 17:05:23 +0000 (18:05 +0100)
src/main.rs
src/new.rs

index 0510db765d994ce6e5dad09d3aafe5b93ed40282..69c87976ac81ede6d6218d454e859b43559ec239 100644 (file)
@@ -31,6 +31,7 @@ pub const NUM_CHANS: usize = 3;
 pub const REL_BUFFER: usize = 0x8000;
 pub const INIT_SEQNUM: u16 = 65500;
 pub const TIMEOUT: u64 = 30;
+pub const PING_TIMEOUT: u64 = 5;
 
 mod ticker_mod {
     #[macro_export]
index a70b1175bbcb7b49516a840f9506c1c7a2e1e27b..6d4987e45870dd4b8d4664e81253c3865c3af431 100644 (file)
@@ -52,6 +52,23 @@ pub async fn new<S: UdpSender, R: UdpReceiver>(
             });
         });
 
+    let ping_share = Arc::clone(&share);
+    let mut ping_close = close_rx.clone();
+    tasks
+        /*.build_task()
+        .name("ping")*/
+        .spawn(async move {
+            ticker!(Duration::from_secs(PING_TIMEOUT), ping_close, {
+                let pkt: Pkt<&[u8]> = Pkt {
+                    chan: 0,
+                    unrel: false,
+                    data: &[CtlType::Ping as u8],
+                };
+
+                ping_share.send(PktType::Ctl, pkt).await.ok();
+            });
+        });
+
     drop(tasks);
 
     Ok((