Add some diagnostics for the same address being reported despite not in list (#1124)

* Add more diagnostics for TCP

* Address review

* Publish libp2p-tcp 0.7.2

* Add another diagnostic
This commit is contained in:
Pierre Krieger
2019-05-15 14:48:26 +02:00
committed by GitHub
parent 3d4d8df713
commit 87a352c84f
3 changed files with 9 additions and 4 deletions

View File

@ -188,7 +188,9 @@ where
if remaining == 0 { break }
}
Ok(Async::Ready(Some(ListenerEvent::Upgrade { upgrade, listen_addr, remote_addr }))) => {
debug_assert!(listener.addresses.contains(&listen_addr));
debug_assert!(listener.addresses.contains(&listen_addr),
"Transport reported listen address {} not in the list: {:?}",
listen_addr, listener.addresses);
self.listeners.push_front(listener);
return Async::Ready(ListenersEvent::Incoming {
upgrade,
@ -197,6 +199,8 @@ where
})
}
Ok(Async::Ready(Some(ListenerEvent::NewAddress(a)))) => {
debug_assert!(!listener.addresses.contains(&a),
"Transport has reported address {} multiple times", a);
if !listener.addresses.contains(&a) {
listener.addresses.push(a.clone());
}

View File

@ -2,7 +2,7 @@
name = "libp2p-tcp"
edition = "2018"
description = "TCP/IP transport protocol for libp2p"
version = "0.7.0"
version = "0.7.2"
authors = ["Parity Technologies <admin@parity.io>"]
license = "MIT"
repository = "https://github.com/libp2p/rust-libp2p"

View File

@ -49,7 +49,7 @@ use libp2p_core::{
multiaddr::{Protocol, Multiaddr},
transport::{ListenerEvent, TransportError}
};
use log::{debug, error};
use log::{debug, error, trace};
use std::{
collections::{HashMap, VecDeque},
fmt,
@ -422,7 +422,7 @@ impl Stream for TcpListenStream {
match apply_config(&self.config, &sock) {
Ok(()) => {
debug!("Incoming connection from {}", remote_addr);
trace!("Incoming connection from {} on {}", remote_addr, listen_addr);
self.pending.push_back(ListenerEvent::Upgrade {
upgrade: future::ok(TcpTransStream { inner: sock }),
listen_addr,
@ -430,6 +430,7 @@ impl Stream for TcpListenStream {
})
}
Err(err) => {
debug!("Error upgrading incoming connection from {}: {:?}", remote_addr, err);
self.pending.push_back(ListenerEvent::Upgrade {
upgrade: future::err(err),
listen_addr,