diff options
Diffstat (limited to 'src/swarm')
| -rw-r--r-- | src/swarm/peer/inbound.rs | 4 | ||||
| -rw-r--r-- | src/swarm/peer/keepalive.rs | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/swarm/peer/inbound.rs b/src/swarm/peer/inbound.rs index b57feaf..18d29d5 100644 --- a/src/swarm/peer/inbound.rs +++ b/src/swarm/peer/inbound.rs @@ -33,7 +33,7 @@ pub(crate) async fn handle_message( return Ok(()); } // PING and PONG only say the peer is alive (`keepalive::note_alive`). - if matches!(message, ParsedMessage::Ping(_) | ParsedMessage::Pong(_)) { + if matches!(message, ParsedMessage::Ping(_) | ParsedMessage::Pong { .. }) { note_alive(state, &peer, &message).await; return Ok(()); } @@ -165,7 +165,7 @@ pub(crate) async fn handle_message( transport::ParsedMessage::Who(_) | transport::ParsedMessage::Me(_) | transport::ParsedMessage::Ping(_) - | transport::ParsedMessage::Pong(_) => {} + | transport::ParsedMessage::Pong { .. } => {} } Ok(()) diff --git a/src/swarm/peer/keepalive.rs b/src/swarm/peer/keepalive.rs index 5e03d0e..11817cc 100644 --- a/src/swarm/peer/keepalive.rs +++ b/src/swarm/peer/keepalive.rs @@ -48,12 +48,15 @@ pub(super) async fn note_alive(state: &AppState, peer: &str, message: &ParsedMes let now = Instant::now(); match message { ParsedMessage::Ping(nonce) if !state.transport.answers_pings() => { - let pong = ParsedMessage::Pong(*nonce); + let pong = ParsedMessage::Pong { + nonce: *nonce, + at: state.clock.now_millis(), + }; if let Err(error) = state.transport.send_message(peer, &pong).await { debug!(peer = %peer, error = %format!("{error:#}"), "PONG failed"); } } - ParsedMessage::Pong(_) => { + ParsedMessage::Pong { .. } => { if let Some(rtt) = state.transport.rtt(peer) { state.lock_rtt().measured(peer, rtt, now); } |
