Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
node/wire: manage logs for error establishing connection
Merged fintohaps opened 4 months ago

Instead of logging all IO errors as an error, match on the kind of the error, logging an info message, otherwise an error.

These errors are informational, and cannot necessarily be resolved by the node operator – since it is a matter of not being able to connect to another end.

1 file changed +16 -1 47dc2c56 75b665ff
modified crates/radicle-node/src/wire.rs
@@ -990,7 +990,7 @@ where
                                .push_back(reactor::Action::RegisterTransport(token, transport));
                        }
                        Err(err) => {
-
                            log::error!(target: "wire", "Error establishing connection to {addr}: {err}");
+
                            logger::establish_connection(&addr, &err);

                            self.service.disconnected(
                                node_id,
@@ -1221,6 +1221,21 @@ fn session<G: Ecdh<Pk = NodeId>>(
    WireSession::new(proxy, noise)
}

+
mod logger {
+
    use radicle::node::Address;
+

+
    pub fn establish_connection(addr: &Address, err: &std::io::Error) {
+
        use std::io::ErrorKind::*;
+
        match err.kind() {
+
            ConnectionRefused | ConnectionReset | HostUnreachable | ConnectionAborted
+
            | NotConnected => {
+
                log::info!(target: "wire", "Could not establish connection to {addr}: {err}")
+
            }
+
            _ => log::error!(target: "wire", "Error establishing connection to {addr}: {err}"),
+
        }
+
    }
+
}
+

#[cfg(test)]
mod test {
    use super::*;