mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-14 22:41:06 +00:00
Find the alive incoming entry on disconnect. (#6320)
When a peer in `Incoming` state disconnects, the "alive" entry in the `incoming` list for that peer must be updated (set to `false`). Currently the entry that is updated may be an earlier entry for the same peer that is already no longer alive. This can happen if a peer repeatedly connects (incoming) and disconnects between invocations to `poll()` of the behaviour.
This commit is contained in:
@@ -1086,7 +1086,9 @@ impl NetworkBehaviour for GenericProto {
|
|||||||
// In the incoming state, we don't report "Dropped". Instead we will just ignore the
|
// In the incoming state, we don't report "Dropped". Instead we will just ignore the
|
||||||
// corresponding Accept/Reject.
|
// corresponding Accept/Reject.
|
||||||
Some(PeerState::Incoming { }) => {
|
Some(PeerState::Incoming { }) => {
|
||||||
if let Some(state) = self.incoming.iter_mut().find(|i| i.peer_id == *peer_id) {
|
if let Some(state) = self.incoming.iter_mut()
|
||||||
|
.find(|i| i.alive && i.peer_id == *peer_id)
|
||||||
|
{
|
||||||
debug!(target: "sub-libp2p",
|
debug!(target: "sub-libp2p",
|
||||||
"Libp2p => Disconnected({}): Was in incoming mode with id {:?}.",
|
"Libp2p => Disconnected({}): Was in incoming mode with id {:?}.",
|
||||||
peer_id, state.incoming_id);
|
peer_id, state.incoming_id);
|
||||||
|
|||||||
Reference in New Issue
Block a user