Fix server only replying after pings

This commit is contained in:
Joscha 2022-02-14 01:56:28 +01:00
parent a3d61f46c3
commit 9f60a069a8

View file

@ -129,19 +129,18 @@ impl ConnMaintenance {
let mut payload = [0u8; 8]; let mut payload = [0u8; 8];
rand::thread_rng().fill(&mut payload); rand::thread_rng().fill(&mut payload);
// debug!("Sending first ping with payload {:?}", payload);
tx.send(Message::Ping(payload.to_vec()))?; tx.send(Message::Ping(payload.to_vec()))?;
tokio::time::sleep(ping_delay).await; tokio::time::sleep(ping_delay).await;
loop { loop {
{
let last_payload = last_ping_payload.lock().await; let last_payload = last_ping_payload.lock().await;
if (&payload as &[u8]) != (&last_payload as &[u8]) { if (&payload as &[u8]) != (&last_payload as &[u8]) {
// warn!("Invalid ping payload, client probably dead");
return Err(Error::NoPong); return Err(Error::NoPong);
} }
};
rand::thread_rng().fill(&mut payload); rand::thread_rng().fill(&mut payload);
// debug!("Sending ping with payload {:?}", payload);
tx.send(Message::Ping(payload.to_vec()))?; tx.send(Message::Ping(payload.to_vec()))?;
tokio::time::sleep(ping_delay).await; tokio::time::sleep(ping_delay).await;
} }