diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 1 | ||||
-rw-r--r-- | src/new.rs | 17 |
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] @@ -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(( |