mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 07:41:08 +00:00
Disconnect on protocol timeout (#2212)
This commit is contained in:
@@ -506,7 +506,7 @@ where
|
||||
Ok(Async::Ready(())) => {
|
||||
deadline.reset(Instant::now() + Duration::from_secs(60));
|
||||
let event = CustomProtoHandlerOut::ProtocolError {
|
||||
is_severe: false,
|
||||
is_severe: true,
|
||||
error: "Timeout when opening protocol".to_string().into(),
|
||||
};
|
||||
return_value = Some(ProtocolsHandlerEvent::Custom(event));
|
||||
|
||||
@@ -22,6 +22,7 @@ use futures::{prelude::*, sync::mpsc};
|
||||
use libp2p::PeerId;
|
||||
use parking_lot::Mutex;
|
||||
use std::sync::Arc;
|
||||
use log::trace;
|
||||
|
||||
pub use serde_json::Value;
|
||||
|
||||
@@ -238,6 +239,7 @@ impl PeersetMut {
|
||||
/// peerset is already connected to, in which case it must not answer.
|
||||
pub fn incoming(&self, peer_id: PeerId, index: IncomingIndex) {
|
||||
let mut inner = self.parent.inner.lock();
|
||||
trace!("Incoming {}\nin_slots={:?}\nout_slots={:?}", peer_id, inner.in_slots, inner.out_slots);
|
||||
if inner.out_slots.iter().chain(inner.in_slots.iter()).any(|s| s.as_ref() == Some(&peer_id)) {
|
||||
return
|
||||
}
|
||||
@@ -260,6 +262,7 @@ impl PeersetMut {
|
||||
pub fn dropped(&self, peer_id: &PeerId) {
|
||||
let mut inner = self.parent.inner.lock();
|
||||
let inner = &mut *inner; // Fixes a borrowing issue.
|
||||
trace!("Dropping {}\nin_slots={:?}\nout_slots={:?}", peer_id, inner.in_slots, inner.out_slots);
|
||||
|
||||
// Automatically connect back if reserved.
|
||||
if inner.reserved.contains(peer_id) {
|
||||
|
||||
Reference in New Issue
Block a user