mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-26 00:01:33 +00:00
Return TCP listener errors. (#1218)
* Add listener ID and error event. Report listener errors to client code so they are aware that an error occurred within a listener. By default we continue to poll listeners which produced an error, but clients can remove listeners by ID. * tcp: Report errors. Instead of silently waiting after errors we return all errors, but pause after each error, before continuing. * Add a test. To ease testing, `Listener` is made generic and we test that no values and errors are lost. Elapsed time between item generation is not measured. * Support the new methods in core-derive. * Address review concerns. * Remove `Display` impl of `ListenerId`. * Add 'static bound to `on_listener_error` error.
This commit is contained in:
committed by
Pierre Krieger
parent
ec22688f96
commit
2c4b52a545
@ -19,7 +19,7 @@
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
use crate::protocols_handler::{IntoProtocolsHandler, ProtocolsHandler};
|
||||
use libp2p_core::{ConnectedPoint, Multiaddr, PeerId};
|
||||
use libp2p_core::{ConnectedPoint, Multiaddr, PeerId, nodes::ListenerId};
|
||||
use futures::prelude::*;
|
||||
use std::error;
|
||||
|
||||
@ -121,6 +121,14 @@ pub trait NetworkBehaviour {
|
||||
fn inject_new_external_addr(&mut self, _addr: &Multiaddr) {
|
||||
}
|
||||
|
||||
/// A listener experienced an error.
|
||||
fn inject_listener_error(&mut self, _id: ListenerId, _err: &(dyn std::error::Error + 'static)) {
|
||||
}
|
||||
|
||||
/// A listener closed.
|
||||
fn inject_listener_closed(&mut self, _id: ListenerId) {
|
||||
}
|
||||
|
||||
/// Polls for things that swarm should do.
|
||||
///
|
||||
/// This API mimics the API of the `Stream` trait. The method may register the current task in
|
||||
|
Reference in New Issue
Block a user