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