From a3d5ea8fb8ebef309f1b8d027bd3495a7044b127 Mon Sep 17 00:00:00 2001 From: fufesou Date: Thu, 15 Feb 2024 16:51:39 +0800 Subject: [PATCH] Fix. Set peers offline when the server is unreachable. (#7139) Signed-off-by: fufesou --- src/rendezvous_mediator.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/rendezvous_mediator.rs b/src/rendezvous_mediator.rs index cbab722ee..233f31e57 100644 --- a/src/rendezvous_mediator.rs +++ b/src/rendezvous_mediator.rs @@ -748,8 +748,17 @@ async fn query_online_states_( return Ok((Vec::new(), Vec::new())); } - let mut socket = create_online_stream().await?; - socket.send(&msg_out).await?; + let mut socket = match create_online_stream().await { + Ok(s) => s, + Err(e) => { + log::debug!("Failed to create peers online stream, {e}"); + return Ok((vec![], ids.clone())); + } + }; + if let Err(e) = socket.send(&msg_out).await { + log::debug!("Failed to send peers online states query, {e}"); + return Ok((vec![], ids.clone())); + } if let Some(msg_in) = crate::common::get_next_nonkeyexchange_msg(&mut socket, None).await { match msg_in.union { Some(rendezvous_message::Union::OnlineResponse(online_response)) => {