diff --git a/src/behaviour/as_client.rs b/src/behaviour/as_client.rs index 7c9242d47cc..668f3b93719 100644 --- a/src/behaviour/as_client.rs +++ b/src/behaviour/as_client.rs @@ -278,13 +278,9 @@ impl<'a> AsClient<'a> { tracing::debug!("Outbound dial-back request aborted: No dial-back addresses"); return Err(OutboundProbeError::NoAddresses); } - let server = match self.random_server() { - Some(s) => s, - None => { - tracing::debug!("Outbound dial-back request aborted: No qualified server"); - return Err(OutboundProbeError::NoServer); - } - }; + + let server = self.random_server().ok_or(OutboundProbeError::NoServer)?; + let request_id = self.inner.send_request( &server, DialRequest { @@ -301,11 +297,8 @@ impl<'a> AsClient<'a> { // Set the delay to the next probe based on the time of our last probe // and the specified delay. fn schedule_next_probe(&mut self, delay: Duration) { - let last_probe_instant = match self.last_probe { - Some(instant) => instant, - None => { - return; - } + let Some(last_probe_instant) = self.last_probe else { + return; }; let schedule_next = *last_probe_instant + delay; self.schedule_probe diff --git a/src/behaviour/as_server.rs b/src/behaviour/as_server.rs index 6185ecc50e2..878fd713dda 100644 --- a/src/behaviour/as_server.rs +++ b/src/behaviour/as_server.rs @@ -326,13 +326,13 @@ impl<'a> AsServer<'a> { demanded: Vec, observed_remote_at: &Multiaddr, ) -> Vec { - let observed_ip = match observed_remote_at + let Some(observed_ip) = observed_remote_at .into_iter() .find(|p| matches!(p, Protocol::Ip4(_) | Protocol::Ip6(_))) - { - Some(ip) => ip, - None => return Vec::new(), + else { + return Vec::new(); }; + let mut distinct = HashSet::new(); demanded .into_iter() diff --git a/src/protocol.rs b/src/protocol.rs index b28f70cadf4..c1862058400 100644 --- a/src/protocol.rs +++ b/src/protocol.rs @@ -119,22 +119,18 @@ impl DialRequest { if msg.type_pb != Some(proto::MessageType::DIAL) { return Err(io::Error::new(io::ErrorKind::InvalidData, "invalid type")); } - let (peer_id, addrs) = if let Some(proto::Dial { - peer: - Some(proto::PeerInfo { - id: Some(peer_id), - addrs, - }), - }) = msg.dial - { - (peer_id, addrs) - } else { - tracing::debug!("Received malformed dial message"); - return Err(io::Error::new( - io::ErrorKind::InvalidData, - "invalid dial message", - )); - }; + + let peer_id_result = msg.dial.and_then(|dial| { + dial.peer.and_then(|peer_info| { + let Some(peer_id) = peer_info.id else { + return None; + }; + Some((peer_id, peer_info.addrs)) + }) + }); + + let (peer_id, addrs) = peer_id_result + .ok_or_else(|| io::Error::new(io::ErrorKind::InvalidData, "invalid dial message"))?; let peer_id = { PeerId::try_from(peer_id.to_vec())