diff --git a/client-network/src/lib.rs b/client-network/src/lib.rs index b0fab0d..10f7451 100644 --- a/client-network/src/lib.rs +++ b/client-network/src/lib.rs @@ -523,8 +523,7 @@ fn parse_pack(s: &str) -> Option<[u8; 6]> { async fn quick_ping(addr: &SocketAddr, timeout_ms: u64, sd: &P2PSharedData) -> bool { let id = 42069; - let pingreq = construct_message(PING, Vec::new(), id, &sd.shared_cryptopair) - .expect("couldn't build ping message"); + let pingreq = construct_message(PING, Vec::new(), id, &sd.shared_cryptopair); let (tx, rx) = oneshot::channel(); { @@ -532,8 +531,12 @@ async fn quick_ping(addr: &SocketAddr, timeout_ms: u64, sd: &P2PSharedData) -> b pending.insert(id, tx); } - sd.senders_ref() - .send_dispatch(pingreq, addr.to_string(), false, sd.messages_list()); + if let Some(ping) = pingreq { + sd.senders_ref() + .add_message_to_retry_queue(ping.clone(), addr.to_string(), false); + sd.senders_ref() + .send_dispatch(ping, addr.to_string(), false, sd.messages_list()); + } let dur = Duration::from_millis(timeout_ms); let res = timeout(dur, rx).await;