aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs1
-rw-r--r--src/new.rs17
2 files changed, 18 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 0510db7..69c8797 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -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]
diff --git a/src/new.rs b/src/new.rs
index a70b117..6d4987e 100644
--- a/src/new.rs
+++ b/src/new.rs
@@ -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((