fix relay connection for key exchange message

This commit is contained in:
SakuraFrp Commit Bot 2023-06-30 13:08:34 +08:00
parent e752c726ed
commit b6e55f2a49

View File

@ -619,15 +619,16 @@ impl Client {
..Default::default() ..Default::default()
}); });
socket.send(&msg_out).await?; socket.send(&msg_out).await?;
if let Some(Ok(bytes)) = socket.next_timeout(CONNECT_TIMEOUT).await {
if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) { if let Some(msg_in) =
if let Some(rendezvous_message::Union::RelayResponse(rs)) = msg_in.union { crate::get_next_nonkeyexchange_msg(&mut socket, Some(CONNECT_TIMEOUT)).await
if !rs.refuse_reason.is_empty() { {
bail!(rs.refuse_reason); if let Some(rendezvous_message::Union::RelayResponse(rs)) = msg_in.union {
} if !rs.refuse_reason.is_empty() {
succeed = true; bail!(rs.refuse_reason);
break;
} }
succeed = true;
break;
} }
} }
} }