network-devp2p: handle UselessPeer disconnect (#8686)

This commit is contained in:
André Silva 2018-05-29 09:16:08 +02:00 committed by Niklas Adolfsson
parent ec9c6e9783
commit 68d16b723a

View File

@ -686,7 +686,8 @@ impl Host {
Err(e) => {
let s = session.lock();
trace!(target: "network", "Session read error: {}:{:?} ({:?}) {:?}", token, s.id(), s.remote_addr(), e);
if let ErrorKind::Disconnect(DisconnectReason::IncompatibleProtocol) = *e.kind() {
match *e.kind() {
ErrorKind::Disconnect(DisconnectReason::IncompatibleProtocol) | ErrorKind::Disconnect(DisconnectReason::UselessPeer) => {
if let Some(id) = s.id() {
if !self.reserved_nodes.read().contains(id) {
let mut nodes = self.nodes.write();
@ -694,6 +695,8 @@ impl Host {
nodes.mark_as_useless(id);
}
}
},
_ => {},
}
kill = true;
break;