From ca06a02306ba24da527a4739f2655d374ae95b96 Mon Sep 17 00:00:00 2001 From: soruh Date: Wed, 25 Jan 2023 22:28:39 +0100 Subject: [PATCH] fix timeout --- src/main.rs | 4 ++-- src/packets.rs | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index e387466..38bce68 100644 --- a/src/main.rs +++ b/src/main.rs @@ -465,11 +465,11 @@ async fn connection_handler( break Result::Packet { packet } } }, - _ = sleep(now.saturating_duration_since(last_ping_sent_at).saturating_sub(SEND_PING_INTERVAL)) => { + _ = sleep(SEND_PING_INTERVAL.saturating_sub(now.saturating_duration_since(last_ping_sent_at))) => { writer.write_all(bytemuck::bytes_of(& Header { kind: PacketKind::Ping.raw(), length: 0 })).await?; last_ping_sent_at = now; } - _ = sleep(now.saturating_duration_since(last_ping_received_at).saturating_sub(PING_TIMEOUT)) => { + _ = sleep(PING_TIMEOUT.saturating_sub(now.saturating_duration_since(last_ping_received_at))) => { writer.write_all(REJECT_TIMEOUT).await?; return Ok(()); } diff --git a/src/packets.rs b/src/packets.rs index 4ec2619..9ac952a 100644 --- a/src/packets.rs +++ b/src/packets.rs @@ -157,6 +157,8 @@ impl Packet { } pub async fn dyn_ip_update(number: u32, pin: u16, port: u16) -> anyhow::Result { + println!("dyn ip update: number={number} port={port}..."); + let mut packet = Packet::default(); packet.header = Header { kind: PacketKind::DynIpUpdate.raw(), @@ -169,8 +171,7 @@ pub async fn dyn_ip_update(number: u32, pin: u16, port: u16) -> anyhow::Result anyhow::Result Ok(<[u8; 4]>::try_from(packet.data) .map_err(|err| { anyhow::anyhow!( @@ -205,5 +206,9 @@ pub async fn dyn_ip_update(number: u32, pin: u16, port: u16) -> anyhow::Result bail!("server returned unexpected packet"), - } + }; + + println!("dyn ip update result: {res:?}"); + + res }