mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-05-29 02:31:20 +00:00
protocols/identify: Emit Push event after successful identification push (#2030)
This commit is contained in:
parent
6fdfb44a54
commit
7cf8ac0862
@ -8,6 +8,10 @@
|
||||
cf. https://github.com/libp2p/specs/tree/master/identify#identifypush
|
||||
[PR 1999](https://github.com/libp2p/rust-libp2p/pull/1999)
|
||||
|
||||
- Emit `IdentifyEvent::Pushed` event after successfully pushing identification
|
||||
information to peer [PR
|
||||
2030](https://github.com/libp2p/rust-libp2p/pull/2030).
|
||||
|
||||
# 0.28.0 [2021-03-17]
|
||||
|
||||
- Update `libp2p-swarm`.
|
||||
|
@ -79,6 +79,8 @@ pub struct IdentifyHandler {
|
||||
pub enum IdentifyHandlerEvent {
|
||||
/// We obtained identification information from the remote.
|
||||
Identified(IdentifyInfo),
|
||||
/// We actively pushed our identification information to the remote.
|
||||
IdentificationPushed,
|
||||
/// We received a request for identification.
|
||||
Identify(ReplySubstream<NegotiatedSubstream>),
|
||||
/// Failed to identify the remote.
|
||||
@ -149,7 +151,8 @@ impl ProtocolsHandler for IdentifyHandler {
|
||||
IdentifyHandlerEvent::Identified(remote_info)));
|
||||
self.keep_alive = KeepAlive::No;
|
||||
}
|
||||
EitherOutput::Second(()) => {}
|
||||
EitherOutput::Second(()) => self.events.push(
|
||||
ProtocolsHandlerEvent::Custom(IdentifyHandlerEvent::IdentificationPushed))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -266,6 +266,13 @@ impl NetworkBehaviour for Identify {
|
||||
score: AddressScore::Finite(1),
|
||||
});
|
||||
}
|
||||
IdentifyHandlerEvent::IdentificationPushed => {
|
||||
self.events.push_back(
|
||||
NetworkBehaviourAction::GenerateEvent(
|
||||
IdentifyEvent::Pushed {
|
||||
peer_id,
|
||||
}));
|
||||
}
|
||||
IdentifyHandlerEvent::Identify(sender) => {
|
||||
let observed = self.connected.get(&peer_id)
|
||||
.and_then(|addrs| addrs.get(&connection))
|
||||
@ -390,18 +397,25 @@ impl NetworkBehaviour for Identify {
|
||||
/// Event emitted by the `Identify` behaviour.
|
||||
#[derive(Debug)]
|
||||
pub enum IdentifyEvent {
|
||||
/// Identifying information has been received from a peer.
|
||||
/// Identification information has been received from a peer.
|
||||
Received {
|
||||
/// The peer that has been identified.
|
||||
peer_id: PeerId,
|
||||
/// The information provided by the peer.
|
||||
info: IdentifyInfo,
|
||||
},
|
||||
/// Identifying information of the local node has been sent to a peer.
|
||||
/// Identification information of the local node has been sent to a peer in
|
||||
/// response to an identification request.
|
||||
Sent {
|
||||
/// The peer that the information has been sent to.
|
||||
peer_id: PeerId,
|
||||
},
|
||||
/// Identification information of the local node has been actively pushed to
|
||||
/// a peer.
|
||||
Pushed {
|
||||
/// The peer that the information has been sent to.
|
||||
peer_id: PeerId,
|
||||
},
|
||||
/// Error while attempting to identify the remote.
|
||||
Error {
|
||||
/// The peer with whom the error originated.
|
||||
|
Loading…
x
Reference in New Issue
Block a user