mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 01:07:57 +00:00
Incorporate sc-peerset into sc-network (#14236)
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::{
|
||||
peerset::DropReason,
|
||||
protocol::notifications::handler::{
|
||||
self, NotificationsSink, NotifsHandler, NotifsHandlerIn, NotifsHandlerOut,
|
||||
},
|
||||
@@ -38,7 +39,6 @@ use libp2p::{
|
||||
use log::{debug, error, info, trace, warn};
|
||||
use parking_lot::RwLock;
|
||||
use rand::distributions::{Distribution as _, Uniform};
|
||||
use sc_peerset::DropReason;
|
||||
use smallvec::SmallVec;
|
||||
use std::{
|
||||
cmp,
|
||||
@@ -108,10 +108,10 @@ pub struct Notifications {
|
||||
notif_protocols: Vec<handler::ProtocolConfig>,
|
||||
|
||||
/// Receiver for instructions about who to connect to or disconnect from.
|
||||
peerset: sc_peerset::Peerset,
|
||||
peerset: crate::peerset::Peerset,
|
||||
|
||||
/// List of peers in our state.
|
||||
peers: FnvHashMap<(PeerId, sc_peerset::SetId), PeerState>,
|
||||
peers: FnvHashMap<(PeerId, crate::peerset::SetId), PeerState>,
|
||||
|
||||
/// The elements in `peers` occasionally contain `Delay` objects that we would normally have
|
||||
/// to be polled one by one. In order to avoid doing so, as an optimization, every `Delay` is
|
||||
@@ -121,7 +121,7 @@ pub struct Notifications {
|
||||
/// By design, we never remove elements from this list. Elements are removed only when the
|
||||
/// `Delay` triggers. As such, this stream may produce obsolete elements.
|
||||
delays: stream::FuturesUnordered<
|
||||
Pin<Box<dyn Future<Output = (DelayId, PeerId, sc_peerset::SetId)> + Send>>,
|
||||
Pin<Box<dyn Future<Output = (DelayId, PeerId, crate::peerset::SetId)> + Send>>,
|
||||
>,
|
||||
|
||||
/// [`DelayId`] to assign to the next delay.
|
||||
@@ -133,7 +133,7 @@ pub struct Notifications {
|
||||
|
||||
/// We generate indices to identify incoming connections. This is the next value for the index
|
||||
/// to use when a connection is incoming.
|
||||
next_incoming_index: sc_peerset::IncomingIndex,
|
||||
next_incoming_index: crate::peerset::IncomingIndex,
|
||||
|
||||
/// Events to produce from `poll()`.
|
||||
events: VecDeque<ToSwarm<NotificationsOut, NotifsHandlerIn>>,
|
||||
@@ -232,7 +232,7 @@ enum PeerState {
|
||||
backoff_until: Option<Instant>,
|
||||
|
||||
/// Incoming index tracking this connection.
|
||||
incoming_index: sc_peerset::IncomingIndex,
|
||||
incoming_index: crate::peerset::IncomingIndex,
|
||||
|
||||
/// List of connections with this peer, and their state.
|
||||
connections: SmallVec<[(ConnectionId, ConnectionState); crate::MAX_CONNECTIONS_PER_PEER]>,
|
||||
@@ -296,12 +296,12 @@ struct IncomingPeer {
|
||||
/// Id of the remote peer of the incoming substream.
|
||||
peer_id: PeerId,
|
||||
/// Id of the set the incoming substream would belong to.
|
||||
set_id: sc_peerset::SetId,
|
||||
set_id: crate::peerset::SetId,
|
||||
/// If true, this "incoming" still corresponds to an actual connection. If false, then the
|
||||
/// connection corresponding to it has been closed or replaced already.
|
||||
alive: bool,
|
||||
/// Id that the we sent to the peerset.
|
||||
incoming_id: sc_peerset::IncomingIndex,
|
||||
incoming_id: crate::peerset::IncomingIndex,
|
||||
}
|
||||
|
||||
/// Event that can be emitted by the `Notifications`.
|
||||
@@ -312,7 +312,7 @@ pub enum NotificationsOut {
|
||||
/// Id of the peer we are connected to.
|
||||
peer_id: PeerId,
|
||||
/// Peerset set ID the substream is tied to.
|
||||
set_id: sc_peerset::SetId,
|
||||
set_id: crate::peerset::SetId,
|
||||
/// If `Some`, a fallback protocol name has been used rather the main protocol name.
|
||||
/// Always matches one of the fallback names passed at initialization.
|
||||
negotiated_fallback: Option<ProtocolName>,
|
||||
@@ -332,7 +332,7 @@ pub enum NotificationsOut {
|
||||
/// Id of the peer we are connected to.
|
||||
peer_id: PeerId,
|
||||
/// Peerset set ID the substream is tied to.
|
||||
set_id: sc_peerset::SetId,
|
||||
set_id: crate::peerset::SetId,
|
||||
/// Replacement for the previous [`NotificationsSink`].
|
||||
notifications_sink: NotificationsSink,
|
||||
},
|
||||
@@ -343,7 +343,7 @@ pub enum NotificationsOut {
|
||||
/// Id of the peer we were connected to.
|
||||
peer_id: PeerId,
|
||||
/// Peerset set ID the substream was tied to.
|
||||
set_id: sc_peerset::SetId,
|
||||
set_id: crate::peerset::SetId,
|
||||
},
|
||||
|
||||
/// Receives a message on a custom protocol substream.
|
||||
@@ -353,7 +353,7 @@ pub enum NotificationsOut {
|
||||
/// Id of the peer the message came from.
|
||||
peer_id: PeerId,
|
||||
/// Peerset set ID the substream is tied to.
|
||||
set_id: sc_peerset::SetId,
|
||||
set_id: crate::peerset::SetId,
|
||||
/// Message that has been received.
|
||||
message: BytesMut,
|
||||
},
|
||||
@@ -362,7 +362,7 @@ pub enum NotificationsOut {
|
||||
impl Notifications {
|
||||
/// Creates a `CustomProtos`.
|
||||
pub fn new(
|
||||
peerset: sc_peerset::Peerset,
|
||||
peerset: crate::peerset::Peerset,
|
||||
notif_protocols: impl Iterator<Item = ProtocolConfig>,
|
||||
) -> Self {
|
||||
let notif_protocols = notif_protocols
|
||||
@@ -383,7 +383,7 @@ impl Notifications {
|
||||
delays: Default::default(),
|
||||
next_delay_id: DelayId(0),
|
||||
incoming: SmallVec::new(),
|
||||
next_incoming_index: sc_peerset::IncomingIndex(0),
|
||||
next_incoming_index: crate::peerset::IncomingIndex(0),
|
||||
events: VecDeque::new(),
|
||||
}
|
||||
}
|
||||
@@ -391,7 +391,7 @@ impl Notifications {
|
||||
/// Modifies the handshake of the given notifications protocol.
|
||||
pub fn set_notif_protocol_handshake(
|
||||
&mut self,
|
||||
set_id: sc_peerset::SetId,
|
||||
set_id: crate::peerset::SetId,
|
||||
handshake_message: impl Into<Vec<u8>>,
|
||||
) {
|
||||
if let Some(p) = self.notif_protocols.get_mut(usize::from(set_id)) {
|
||||
@@ -413,18 +413,18 @@ impl Notifications {
|
||||
}
|
||||
|
||||
/// Returns true if we have an open substream to the given peer.
|
||||
pub fn is_open(&self, peer_id: &PeerId, set_id: sc_peerset::SetId) -> bool {
|
||||
pub fn is_open(&self, peer_id: &PeerId, set_id: crate::peerset::SetId) -> bool {
|
||||
self.peers.get(&(*peer_id, set_id)).map(|p| p.is_open()).unwrap_or(false)
|
||||
}
|
||||
|
||||
/// Disconnects the given peer if we are connected to it.
|
||||
pub fn disconnect_peer(&mut self, peer_id: &PeerId, set_id: sc_peerset::SetId) {
|
||||
pub fn disconnect_peer(&mut self, peer_id: &PeerId, set_id: crate::peerset::SetId) {
|
||||
trace!(target: "sub-libp2p", "External API => Disconnect({}, {:?})", peer_id, set_id);
|
||||
self.disconnect_peer_inner(peer_id, set_id);
|
||||
}
|
||||
|
||||
/// Inner implementation of `disconnect_peer`.
|
||||
fn disconnect_peer_inner(&mut self, peer_id: &PeerId, set_id: sc_peerset::SetId) {
|
||||
fn disconnect_peer_inner(&mut self, peer_id: &PeerId, set_id: crate::peerset::SetId) {
|
||||
let mut entry = if let Entry::Occupied(entry) = self.peers.entry((*peer_id, set_id)) {
|
||||
entry
|
||||
} else {
|
||||
@@ -541,7 +541,7 @@ impl Notifications {
|
||||
/// Returns the list of reserved peers.
|
||||
pub fn reserved_peers(
|
||||
&self,
|
||||
set_id: sc_peerset::SetId,
|
||||
set_id: crate::peerset::SetId,
|
||||
pending_response: oneshot::Sender<Vec<PeerId>>,
|
||||
) {
|
||||
self.peerset.reserved_peers(set_id, pending_response);
|
||||
@@ -553,7 +553,7 @@ impl Notifications {
|
||||
}
|
||||
|
||||
/// Function that is called when the peerset wants us to connect to a peer.
|
||||
fn peerset_report_connect(&mut self, peer_id: PeerId, set_id: sc_peerset::SetId) {
|
||||
fn peerset_report_connect(&mut self, peer_id: PeerId, set_id: crate::peerset::SetId) {
|
||||
// If `PeerId` is unknown to us, insert an entry, start dialing, and return early.
|
||||
let mut occ_entry = match self.peers.entry((peer_id, set_id)) {
|
||||
Entry::Occupied(entry) => entry,
|
||||
@@ -731,7 +731,7 @@ impl Notifications {
|
||||
}
|
||||
|
||||
/// Function that is called when the peerset wants us to disconnect from a peer.
|
||||
fn peerset_report_disconnect(&mut self, peer_id: PeerId, set_id: sc_peerset::SetId) {
|
||||
fn peerset_report_disconnect(&mut self, peer_id: PeerId, set_id: crate::peerset::SetId) {
|
||||
let mut entry = match self.peers.entry((peer_id, set_id)) {
|
||||
Entry::Occupied(entry) => entry,
|
||||
Entry::Vacant(entry) => {
|
||||
@@ -839,7 +839,7 @@ impl Notifications {
|
||||
|
||||
/// Function that is called when the peerset wants us to accept a connection
|
||||
/// request from a peer.
|
||||
fn peerset_report_accept(&mut self, index: sc_peerset::IncomingIndex) {
|
||||
fn peerset_report_accept(&mut self, index: crate::peerset::IncomingIndex) {
|
||||
let incoming = if let Some(pos) = self.incoming.iter().position(|i| i.incoming_id == index)
|
||||
{
|
||||
self.incoming.remove(pos)
|
||||
@@ -925,7 +925,7 @@ impl Notifications {
|
||||
}
|
||||
|
||||
/// Function that is called when the peerset wants us to reject an incoming peer.
|
||||
fn peerset_report_reject(&mut self, index: sc_peerset::IncomingIndex) {
|
||||
fn peerset_report_reject(&mut self, index: crate::peerset::IncomingIndex) {
|
||||
let incoming = if let Some(pos) = self.incoming.iter().position(|i| i.incoming_id == index)
|
||||
{
|
||||
self.incoming.remove(pos)
|
||||
@@ -1059,7 +1059,7 @@ impl NetworkBehaviour for Notifications {
|
||||
connection_id,
|
||||
..
|
||||
}) => {
|
||||
for set_id in (0..self.notif_protocols.len()).map(sc_peerset::SetId::from) {
|
||||
for set_id in (0..self.notif_protocols.len()).map(crate::peerset::SetId::from) {
|
||||
match self.peers.entry((peer_id, set_id)).or_insert(PeerState::Poisoned) {
|
||||
// Requested | PendingRequest => Enabled
|
||||
st @ &mut PeerState::Requested |
|
||||
@@ -1113,7 +1113,7 @@ impl NetworkBehaviour for Notifications {
|
||||
}
|
||||
},
|
||||
FromSwarm::ConnectionClosed(ConnectionClosed { peer_id, connection_id, .. }) => {
|
||||
for set_id in (0..self.notif_protocols.len()).map(sc_peerset::SetId::from) {
|
||||
for set_id in (0..self.notif_protocols.len()).map(crate::peerset::SetId::from) {
|
||||
let mut entry = if let Entry::Occupied(entry) =
|
||||
self.peers.entry((peer_id, set_id))
|
||||
{
|
||||
@@ -1406,7 +1406,7 @@ impl NetworkBehaviour for Notifications {
|
||||
if let Some(peer_id) = peer_id {
|
||||
trace!(target: "sub-libp2p", "Libp2p => Dial failure for {:?}", peer_id);
|
||||
|
||||
for set_id in (0..self.notif_protocols.len()).map(sc_peerset::SetId::from) {
|
||||
for set_id in (0..self.notif_protocols.len()).map(crate::peerset::SetId::from) {
|
||||
if let Entry::Occupied(mut entry) = self.peers.entry((peer_id, set_id)) {
|
||||
match mem::replace(entry.get_mut(), PeerState::Poisoned) {
|
||||
// The peer is not in our list.
|
||||
@@ -1485,7 +1485,7 @@ impl NetworkBehaviour for Notifications {
|
||||
) {
|
||||
match event {
|
||||
NotifsHandlerOut::OpenDesiredByRemote { protocol_index } => {
|
||||
let set_id = sc_peerset::SetId::from(protocol_index);
|
||||
let set_id = crate::peerset::SetId::from(protocol_index);
|
||||
|
||||
trace!(target: "sub-libp2p",
|
||||
"Handler({:?}, {:?}]) => OpenDesiredByRemote({:?})",
|
||||
@@ -1675,7 +1675,7 @@ impl NetworkBehaviour for Notifications {
|
||||
},
|
||||
|
||||
NotifsHandlerOut::CloseDesired { protocol_index } => {
|
||||
let set_id = sc_peerset::SetId::from(protocol_index);
|
||||
let set_id = crate::peerset::SetId::from(protocol_index);
|
||||
|
||||
trace!(target: "sub-libp2p",
|
||||
"Handler({}, {:?}) => CloseDesired({:?})",
|
||||
@@ -1775,7 +1775,7 @@ impl NetworkBehaviour for Notifications {
|
||||
},
|
||||
|
||||
NotifsHandlerOut::CloseResult { protocol_index } => {
|
||||
let set_id = sc_peerset::SetId::from(protocol_index);
|
||||
let set_id = crate::peerset::SetId::from(protocol_index);
|
||||
|
||||
trace!(target: "sub-libp2p",
|
||||
"Handler({}, {:?}) => CloseResult({:?})",
|
||||
@@ -1814,7 +1814,7 @@ impl NetworkBehaviour for Notifications {
|
||||
notifications_sink,
|
||||
..
|
||||
} => {
|
||||
let set_id = sc_peerset::SetId::from(protocol_index);
|
||||
let set_id = crate::peerset::SetId::from(protocol_index);
|
||||
trace!(target: "sub-libp2p",
|
||||
"Handler({}, {:?}) => OpenResultOk({:?})",
|
||||
peer_id, connection_id, set_id);
|
||||
@@ -1880,7 +1880,7 @@ impl NetworkBehaviour for Notifications {
|
||||
},
|
||||
|
||||
NotifsHandlerOut::OpenResultErr { protocol_index } => {
|
||||
let set_id = sc_peerset::SetId::from(protocol_index);
|
||||
let set_id = crate::peerset::SetId::from(protocol_index);
|
||||
trace!(target: "sub-libp2p",
|
||||
"Handler({:?}, {:?}) => OpenResultErr({:?})",
|
||||
peer_id, connection_id, set_id);
|
||||
@@ -1969,7 +1969,7 @@ impl NetworkBehaviour for Notifications {
|
||||
},
|
||||
|
||||
NotifsHandlerOut::Notification { protocol_index, message } => {
|
||||
let set_id = sc_peerset::SetId::from(protocol_index);
|
||||
let set_id = crate::peerset::SetId::from(protocol_index);
|
||||
if self.is_open(&peer_id, set_id) {
|
||||
trace!(
|
||||
target: "sub-libp2p",
|
||||
@@ -2015,16 +2015,16 @@ impl NetworkBehaviour for Notifications {
|
||||
// Note that the peerset is a *best effort* crate, and we have to use defensive programming.
|
||||
loop {
|
||||
match futures::Stream::poll_next(Pin::new(&mut self.peerset), cx) {
|
||||
Poll::Ready(Some(sc_peerset::Message::Accept(index))) => {
|
||||
Poll::Ready(Some(crate::peerset::Message::Accept(index))) => {
|
||||
self.peerset_report_accept(index);
|
||||
},
|
||||
Poll::Ready(Some(sc_peerset::Message::Reject(index))) => {
|
||||
Poll::Ready(Some(crate::peerset::Message::Reject(index))) => {
|
||||
self.peerset_report_reject(index);
|
||||
},
|
||||
Poll::Ready(Some(sc_peerset::Message::Connect { peer_id, set_id, .. })) => {
|
||||
Poll::Ready(Some(crate::peerset::Message::Connect { peer_id, set_id, .. })) => {
|
||||
self.peerset_report_connect(peer_id, set_id);
|
||||
},
|
||||
Poll::Ready(Some(sc_peerset::Message::Drop { peer_id, set_id, .. })) => {
|
||||
Poll::Ready(Some(crate::peerset::Message::Drop { peer_id, set_id, .. })) => {
|
||||
self.peerset_report_disconnect(peer_id, set_id);
|
||||
},
|
||||
Poll::Ready(None) => {
|
||||
@@ -2105,9 +2105,8 @@ impl NetworkBehaviour for Notifications {
|
||||
#[allow(deprecated)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::protocol::notifications::handler::tests::*;
|
||||
use crate::{peerset::IncomingIndex, protocol::notifications::handler::tests::*};
|
||||
use libp2p::swarm::AddressRecord;
|
||||
use sc_peerset::IncomingIndex;
|
||||
use std::{collections::HashSet, iter};
|
||||
|
||||
impl PartialEq for ConnectionState {
|
||||
@@ -2153,11 +2152,11 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
fn development_notifs() -> (Notifications, sc_peerset::PeersetHandle) {
|
||||
fn development_notifs() -> (Notifications, crate::peerset::PeersetHandle) {
|
||||
let (peerset, peerset_handle) = {
|
||||
let mut sets = Vec::with_capacity(1);
|
||||
|
||||
sets.push(sc_peerset::SetConfig {
|
||||
sets.push(crate::peerset::SetConfig {
|
||||
in_peers: 25,
|
||||
out_peers: 25,
|
||||
bootnodes: Vec::new(),
|
||||
@@ -2165,7 +2164,7 @@ mod tests {
|
||||
reserved_only: false,
|
||||
});
|
||||
|
||||
sc_peerset::Peerset::from_config(sc_peerset::PeersetConfig { sets })
|
||||
crate::peerset::Peerset::from_config(crate::peerset::PeersetConfig { sets })
|
||||
};
|
||||
|
||||
(
|
||||
@@ -2311,7 +2310,7 @@ mod tests {
|
||||
|
||||
assert!(std::matches!(
|
||||
notif.incoming.pop(),
|
||||
Some(IncomingPeer { alive: true, incoming_id: sc_peerset::IncomingIndex(0), .. }),
|
||||
Some(IncomingPeer { alive: true, incoming_id: crate::peerset::IncomingIndex(0), .. }),
|
||||
));
|
||||
}
|
||||
|
||||
@@ -2354,7 +2353,7 @@ mod tests {
|
||||
#[test]
|
||||
fn peerset_report_connect_backoff() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -2421,7 +2420,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2455,7 +2454,7 @@ mod tests {
|
||||
#[test]
|
||||
fn peerset_disconnect_disable_pending_enable() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -2504,7 +2503,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2539,7 +2538,7 @@ mod tests {
|
||||
fn peerset_disconnect_requested() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
|
||||
// Set peer into `Requested` state.
|
||||
notif.peerset_report_connect(peer, set_id);
|
||||
@@ -2553,7 +2552,7 @@ mod tests {
|
||||
#[test]
|
||||
fn peerset_disconnect_pending_request() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -2608,7 +2607,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2635,17 +2634,17 @@ mod tests {
|
||||
|
||||
assert!(std::matches!(
|
||||
notif.incoming[0],
|
||||
IncomingPeer { alive: true, incoming_id: sc_peerset::IncomingIndex(0), .. },
|
||||
IncomingPeer { alive: true, incoming_id: crate::peerset::IncomingIndex(0), .. },
|
||||
));
|
||||
|
||||
notif.disconnect_peer(&peer, set_id);
|
||||
assert!(std::matches!(notif.peers.get(&(peer, set_id)), Some(&PeerState::Disabled { .. })));
|
||||
assert!(std::matches!(
|
||||
notif.incoming[0],
|
||||
IncomingPeer { alive: false, incoming_id: sc_peerset::IncomingIndex(0), .. },
|
||||
IncomingPeer { alive: false, incoming_id: crate::peerset::IncomingIndex(0), .. },
|
||||
));
|
||||
|
||||
notif.peerset_report_accept(sc_peerset::IncomingIndex(0));
|
||||
notif.peerset_report_accept(crate::peerset::IncomingIndex(0));
|
||||
assert_eq!(notif.incoming.len(), 0);
|
||||
assert!(std::matches!(notif.peers.get(&(peer, set_id)), Some(PeerState::Disabled { .. })));
|
||||
}
|
||||
@@ -2656,7 +2655,7 @@ mod tests {
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let conn2 = ConnectionId::new_unchecked(1);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2710,7 +2709,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2744,7 +2743,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2780,7 +2779,7 @@ mod tests {
|
||||
assert!(notif.peers.get(&(peer, set_id)).is_none());
|
||||
assert!(std::matches!(
|
||||
notif.incoming[0],
|
||||
IncomingPeer { alive: false, incoming_id: sc_peerset::IncomingIndex(0), .. },
|
||||
IncomingPeer { alive: false, incoming_id: crate::peerset::IncomingIndex(0), .. },
|
||||
));
|
||||
}
|
||||
|
||||
@@ -2790,7 +2789,7 @@ mod tests {
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let conn1 = ConnectionId::new_unchecked(1);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2858,7 +2857,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -2886,7 +2885,7 @@ mod tests {
|
||||
|
||||
// We rely on the implementation detail that incoming indices are counted
|
||||
// from 0 to not mock the `Peerset`.
|
||||
notif.peerset_report_accept(sc_peerset::IncomingIndex(0));
|
||||
notif.peerset_report_accept(crate::peerset::IncomingIndex(0));
|
||||
assert!(std::matches!(notif.peers.get(&(peer, set_id)), Some(&PeerState::Enabled { .. })));
|
||||
|
||||
// open new substream
|
||||
@@ -2913,7 +2912,7 @@ mod tests {
|
||||
let peer = PeerId::random();
|
||||
let conn1 = ConnectionId::new_unchecked(0);
|
||||
let conn2 = ConnectionId::new_unchecked(1);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -3006,7 +3005,7 @@ mod tests {
|
||||
fn dial_failure_for_requested_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
|
||||
// Set peer into `Requested` state.
|
||||
notif.peerset_report_connect(peer, set_id);
|
||||
@@ -3030,7 +3029,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -3077,7 +3076,7 @@ mod tests {
|
||||
#[test]
|
||||
fn peerset_report_connect_backoff_expired() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -3126,7 +3125,7 @@ mod tests {
|
||||
fn peerset_report_disconnect_disabled() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
@@ -3151,7 +3150,7 @@ mod tests {
|
||||
#[test]
|
||||
fn peerset_report_disconnect_backoff() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -3197,7 +3196,7 @@ mod tests {
|
||||
#[test]
|
||||
fn peer_is_backed_off_if_both_connections_get_closed_while_peer_is_disabled_with_back_off() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn1 = ConnectionId::new_unchecked(0);
|
||||
let conn2 = ConnectionId::new_unchecked(1);
|
||||
@@ -3271,7 +3270,7 @@ mod tests {
|
||||
fn inject_connection_closed_incoming_with_backoff() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
@@ -3324,7 +3323,7 @@ mod tests {
|
||||
let peer = PeerId::random();
|
||||
let conn1 = ConnectionId::new_unchecked(0);
|
||||
let conn2 = ConnectionId::new_unchecked(1);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -3379,7 +3378,7 @@ mod tests {
|
||||
let peer = PeerId::random();
|
||||
let conn1 = ConnectionId::new_unchecked(0);
|
||||
let conn2 = ConnectionId::new_unchecked(1);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -3437,7 +3436,7 @@ mod tests {
|
||||
let peer = PeerId::random();
|
||||
let conn1 = ConnectionId::new_unchecked(0);
|
||||
let conn2 = ConnectionId::new_unchecked(1);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -3502,7 +3501,7 @@ mod tests {
|
||||
#[test]
|
||||
fn inject_dial_failure_for_pending_request() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -3566,7 +3565,7 @@ mod tests {
|
||||
fn peerstate_incoming_open_desired_by_remote() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let conn1 = ConnectionId::new_unchecked(0);
|
||||
let conn2 = ConnectionId::new_unchecked(1);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -3620,7 +3619,7 @@ mod tests {
|
||||
async fn remove_backoff_peer_after_timeout() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
@@ -3699,7 +3698,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -3817,7 +3816,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -3865,7 +3864,7 @@ mod tests {
|
||||
#[cfg(debug_assertions)]
|
||||
fn peerset_report_connect_with_disabled_pending_enable_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -3912,7 +3911,7 @@ mod tests {
|
||||
fn peerset_report_connect_with_requested_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
|
||||
// Set peer into `Requested` state.
|
||||
notif.peerset_report_connect(peer, set_id);
|
||||
@@ -3927,7 +3926,7 @@ mod tests {
|
||||
#[cfg(debug_assertions)]
|
||||
fn peerset_report_connect_with_pending_requested() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -3985,7 +3984,7 @@ mod tests {
|
||||
fn peerset_report_connect_with_incoming_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
@@ -4020,7 +4019,7 @@ mod tests {
|
||||
fn peerset_report_disconnect_with_incoming_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
@@ -4057,7 +4056,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -4084,11 +4083,11 @@ mod tests {
|
||||
|
||||
assert!(std::matches!(
|
||||
notif.incoming[0],
|
||||
IncomingPeer { alive: true, incoming_id: sc_peerset::IncomingIndex(0), .. },
|
||||
IncomingPeer { alive: true, incoming_id: crate::peerset::IncomingIndex(0), .. },
|
||||
));
|
||||
|
||||
notif.peers.remove(&(peer, set_id));
|
||||
notif.peerset_report_accept(sc_peerset::IncomingIndex(0));
|
||||
notif.peerset_report_accept(crate::peerset::IncomingIndex(0));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -4098,7 +4097,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -4126,7 +4125,7 @@ mod tests {
|
||||
|
||||
assert!(std::matches!(
|
||||
notif.incoming[0],
|
||||
IncomingPeer { alive: true, incoming_id: sc_peerset::IncomingIndex(0), .. },
|
||||
IncomingPeer { alive: true, incoming_id: crate::peerset::IncomingIndex(0), .. },
|
||||
));
|
||||
|
||||
notif.peerset_report_connect(peer, set_id);
|
||||
@@ -4137,7 +4136,7 @@ mod tests {
|
||||
|
||||
assert!(std::matches!(notif.peers.get(&(peer, set_id)), Some(&PeerState::Enabled { .. })));
|
||||
notif.incoming[0].alive = true;
|
||||
notif.peerset_report_accept(sc_peerset::IncomingIndex(0));
|
||||
notif.peerset_report_accept(crate::peerset::IncomingIndex(0));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -4166,7 +4165,7 @@ mod tests {
|
||||
fn disconnect_non_existent_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
|
||||
notif.peerset_report_disconnect(peer, set_id);
|
||||
|
||||
@@ -4199,7 +4198,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -4237,7 +4236,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -4263,7 +4262,7 @@ mod tests {
|
||||
assert!(std::matches!(notif.peers.get(&(peer, set_id)), Some(&PeerState::Incoming { .. })));
|
||||
assert!(std::matches!(
|
||||
notif.incoming[0],
|
||||
IncomingPeer { alive: true, incoming_id: sc_peerset::IncomingIndex(0), .. },
|
||||
IncomingPeer { alive: true, incoming_id: crate::peerset::IncomingIndex(0), .. },
|
||||
));
|
||||
|
||||
notif.peers.remove(&(peer, set_id));
|
||||
@@ -4277,7 +4276,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -4318,7 +4317,7 @@ mod tests {
|
||||
#[cfg(debug_assertions)]
|
||||
fn inject_non_existent_connection_closed_for_disabled_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -4353,7 +4352,7 @@ mod tests {
|
||||
#[cfg(debug_assertions)]
|
||||
fn inject_non_existent_connection_closed_for_disabled_pending_enable() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
@@ -4406,7 +4405,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -4450,7 +4449,7 @@ mod tests {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
local_addr: Multiaddr::empty(),
|
||||
send_back_addr: Multiaddr::empty(),
|
||||
@@ -4495,7 +4494,7 @@ mod tests {
|
||||
#[cfg(debug_assertions)]
|
||||
fn inject_connection_closed_for_backoff_peer() {
|
||||
let (mut notif, _peerset) = development_notifs();
|
||||
let set_id = sc_peerset::SetId::from(0);
|
||||
let set_id = crate::peerset::SetId::from(0);
|
||||
let peer = PeerId::random();
|
||||
let conn = ConnectionId::new_unchecked(0);
|
||||
let connected = ConnectedPoint::Listener {
|
||||
|
||||
@@ -65,19 +65,24 @@ fn build_nodes() -> (Swarm<CustomProtoWithAddr>, Swarm<CustomProtoWithAddr>) {
|
||||
.timeout(Duration::from_secs(20))
|
||||
.boxed();
|
||||
|
||||
let (peerset, _) = sc_peerset::Peerset::from_config(sc_peerset::PeersetConfig {
|
||||
sets: vec![sc_peerset::SetConfig {
|
||||
in_peers: 25,
|
||||
out_peers: 25,
|
||||
bootnodes: if index == 0 {
|
||||
keypairs.iter().skip(1).map(|keypair| keypair.public().to_peer_id()).collect()
|
||||
} else {
|
||||
vec![]
|
||||
},
|
||||
reserved_nodes: Default::default(),
|
||||
reserved_only: false,
|
||||
}],
|
||||
});
|
||||
let (peerset, handle) =
|
||||
crate::peerset::Peerset::from_config(crate::peerset::PeersetConfig {
|
||||
sets: vec![crate::peerset::SetConfig {
|
||||
in_peers: 25,
|
||||
out_peers: 25,
|
||||
bootnodes: if index == 0 {
|
||||
keypairs
|
||||
.iter()
|
||||
.skip(1)
|
||||
.map(|keypair| keypair.public().to_peer_id())
|
||||
.collect()
|
||||
} else {
|
||||
vec![]
|
||||
},
|
||||
reserved_nodes: Default::default(),
|
||||
reserved_only: false,
|
||||
}],
|
||||
});
|
||||
|
||||
let behaviour = CustomProtoWithAddr {
|
||||
inner: Notifications::new(
|
||||
@@ -89,6 +94,7 @@ fn build_nodes() -> (Swarm<CustomProtoWithAddr>, Swarm<CustomProtoWithAddr>) {
|
||||
max_notification_size: 1024 * 1024,
|
||||
}),
|
||||
),
|
||||
_peerset_handle: handle,
|
||||
addrs: addrs
|
||||
.iter()
|
||||
.enumerate()
|
||||
@@ -124,6 +130,8 @@ fn build_nodes() -> (Swarm<CustomProtoWithAddr>, Swarm<CustomProtoWithAddr>) {
|
||||
/// Wraps around the `CustomBehaviour` network behaviour, and adds hardcoded node addresses to it.
|
||||
struct CustomProtoWithAddr {
|
||||
inner: Notifications,
|
||||
// We need to keep `PeersetHandle` for `Peerset` not to shut down.
|
||||
_peerset_handle: crate::peerset::PeersetHandle,
|
||||
addrs: Vec<(PeerId, Multiaddr)>,
|
||||
}
|
||||
|
||||
@@ -266,7 +274,7 @@ fn reconnect_after_disconnect() {
|
||||
if service2_state == ServiceState::FirstConnec {
|
||||
service1.behaviour_mut().disconnect_peer(
|
||||
Swarm::local_peer_id(&service2),
|
||||
sc_peerset::SetId::from(0),
|
||||
crate::peerset::SetId::from(0),
|
||||
);
|
||||
}
|
||||
},
|
||||
@@ -289,7 +297,7 @@ fn reconnect_after_disconnect() {
|
||||
if service1_state == ServiceState::FirstConnec {
|
||||
service1.behaviour_mut().disconnect_peer(
|
||||
Swarm::local_peer_id(&service2),
|
||||
sc_peerset::SetId::from(0),
|
||||
crate::peerset::SetId::from(0),
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user