Skip to content

Commit

Permalink
Don't expire mDNS nodes on connection close
Browse files Browse the repository at this point in the history
Fixes #3309
  • Loading branch information
felinira committed Jan 23, 2023
1 parent f522057 commit 88eb1e7
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 11 deletions.
2 changes: 2 additions & 0 deletions protocols/mdns/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

- Update to `libp2p-swarm` `v0.42.0`.

- Don't expire mDNS records when the last connection was closed. mDNS records will only be expired when the TTL is reached and the DNS record is no longer valid.

[PR 3153]: https://github.com/libp2p/rust-libp2p/pull/3153

# 0.42.0
Expand Down
14 changes: 3 additions & 11 deletions protocols/mdns/src/behaviour.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ use crate::Config;
use futures::Stream;
use if_watch::IfEvent;
use libp2p_core::{Multiaddr, PeerId};
use libp2p_swarm::behaviour::{ConnectionClosed, FromSwarm};
use libp2p_swarm::behaviour::FromSwarm;
use libp2p_swarm::{
dummy, ConnectionHandler, ListenAddresses, NetworkBehaviour, NetworkBehaviourAction,
PollParameters,
Expand Down Expand Up @@ -199,22 +199,14 @@ where
self.listen_addresses.on_swarm_event(&event);

match event {
FromSwarm::ConnectionClosed(ConnectionClosed {
peer_id,
remaining_established,
..
}) => {
if remaining_established == 0 {
self.expire_node(&peer_id);
}
}
FromSwarm::NewListener(_) => {
log::trace!("waking interface state because listening address changed");
for iface in self.iface_states.values_mut() {
iface.fire_timer();
}
}
FromSwarm::ConnectionEstablished(_)
FromSwarm::ConnectionClosed(_)
| FromSwarm::ConnectionEstablished(_)
| FromSwarm::DialFailure(_)
| FromSwarm::AddressChange(_)
| FromSwarm::ListenFailure(_)
Expand Down

0 comments on commit 88eb1e7

Please sign in to comment.