mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-14 22:41:06 +00:00
Make ping unidirectional (#458)
This commit is contained in:
committed by
Arkadiy Paronyan
parent
8c527f2999
commit
9dd746e867
Generated
+23
-23
@@ -257,7 +257,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "cid"
|
||||
version = "0.2.3"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"integer-encoding 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"multibase 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -406,7 +406,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "datastore"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"chashmap 2.2.1 (git+https://github.com/redox-os/tfs)",
|
||||
@@ -1136,7 +1136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
[[package]]
|
||||
name = "libp2p"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1165,7 +1165,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-core"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1186,7 +1186,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-dns"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2)",
|
||||
@@ -1199,7 +1199,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-floodsub"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1220,7 +1220,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-identify"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1239,7 +1239,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-kad"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bigint 4.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1266,7 +1266,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-mplex"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1282,7 +1282,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-peerstore"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bs58 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2)",
|
||||
@@ -1297,7 +1297,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-ping"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1314,7 +1314,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-ratelimit"
|
||||
version = "0.1.1"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)",
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1327,7 +1327,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-relay"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1345,7 +1345,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-secio"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"asn1_der 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1365,7 +1365,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-tcp-transport"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2)",
|
||||
@@ -1378,7 +1378,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-transport-timeout"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2)",
|
||||
@@ -1389,7 +1389,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-websocket"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2)",
|
||||
@@ -1404,7 +1404,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "libp2p-yamux"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1544,7 +1544,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "multiaddr"
|
||||
version = "0.3.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cid 0.2.3 (git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2)",
|
||||
@@ -1562,7 +1562,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "multihash"
|
||||
version = "0.8.1-pre"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -1572,7 +1572,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "multistream-select"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2355,7 +2355,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "rw-stream-sink"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -3709,7 +3709,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
[[package]]
|
||||
name = "varint"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#725f9f78ebeddc038941316f120a99daaebc9231"
|
||||
source = "git+https://github.com/tomaka/libp2p-rs?branch=polkadot-2#eae2186e40c20efb0daf718e39ff7868718f7437"
|
||||
dependencies = [
|
||||
"bytes 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
||||
@@ -451,7 +451,7 @@ fn init_thread(
|
||||
let listener_upgrade = upgrade::or(upgrade::or(upgrade::or(
|
||||
upgrade::map_with_addr(shared.kad_upgrade.clone(), |(c, f), a| FinalUpgrade::Kad(c, f, a.clone())),
|
||||
upgrade::map(IdentifyProtocolConfig, |id| FinalUpgrade::Identify(id, original_addr))),
|
||||
upgrade::map_with_addr(ping::Ping, |(p, f), addr| FinalUpgrade::Ping(p, f, addr.clone()))),
|
||||
upgrade::map_with_addr(ping::Ping, |out, addr| FinalUpgrade::from((out, addr.clone())))),
|
||||
upgrade::map_with_addr(DelayedProtosList(shared), |c, a| FinalUpgrade::Custom(c, a.clone())));
|
||||
upgrade::apply(out.socket, listener_upgrade, endpoint, client_addr)
|
||||
}
|
||||
@@ -583,12 +583,23 @@ enum FinalUpgrade<C> {
|
||||
Kad(KadConnecController, Box<Stream<Item = KadIncomingRequest, Error = IoError>>, Multiaddr),
|
||||
/// The remote identification system, and the multiaddress we see the remote as.
|
||||
Identify(IdentifyOutput<C>, Multiaddr),
|
||||
Ping(ping::Pinger, Box<Future<Item = (), Error = IoError>>, Multiaddr),
|
||||
PingDialer(ping::Pinger, Box<Future<Item = (), Error = IoError>>, Multiaddr),
|
||||
PingListener(Box<Future<Item = (), Error = IoError>>, Multiaddr),
|
||||
/// `Custom` means anything not in the core libp2p and is handled
|
||||
/// by `CustomProtoConnectionUpgrade`.
|
||||
Custom(RegisteredProtocolOutput<Arc<NetworkProtocolHandler + Send + Sync>>, Multiaddr),
|
||||
}
|
||||
|
||||
impl<C> From<(ping::PingOutput, Multiaddr)> for FinalUpgrade<C> {
|
||||
fn from((out, addr): (ping::PingOutput, Multiaddr)) -> FinalUpgrade<C> {
|
||||
match out {
|
||||
ping::PingOutput::Ponger(processing) => FinalUpgrade::PingListener(processing, addr),
|
||||
ping::PingOutput::Pinger { pinger, processing } =>
|
||||
FinalUpgrade::PingDialer(pinger, processing, addr),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Called whenever we successfully open a multistream with a remote.
|
||||
fn listener_handle<'a, C>(
|
||||
shared: Arc<Shared>,
|
||||
@@ -623,7 +634,12 @@ fn listener_handle<'a, C>(
|
||||
FinalUpgrade::Identify(IdentifyOutput::RemoteInfo { .. }, _) =>
|
||||
unreachable!("We are never dialing with the identify protocol"),
|
||||
|
||||
FinalUpgrade::Ping(pinger, future, client_addr) => {
|
||||
FinalUpgrade::PingListener(future, client_addr) => {
|
||||
trace!(target: "sub-libp2p", "Received ping substream from {:?}", client_addr);
|
||||
future
|
||||
},
|
||||
|
||||
FinalUpgrade::PingDialer(pinger, future, client_addr) => {
|
||||
let node_id = p2p_multiaddr_to_node_id(client_addr);
|
||||
match shared.network_state.ping_connection(node_id.clone()) {
|
||||
Ok((_, ping_connec)) => {
|
||||
@@ -1269,9 +1285,9 @@ fn start_pinger<T, To, St, C>(
|
||||
.and_then(move |out, endpoint, client_addr|
|
||||
upgrade::apply(out.socket, ping::Ping, endpoint, client_addr)
|
||||
)
|
||||
.and_then(move |(ctrl, fut), _, client_addr| {
|
||||
.and_then(move |out, _, client_addr| {
|
||||
client_addr.map(|client_addr| {
|
||||
let out = FinalUpgrade::Ping(ctrl, fut, client_addr.clone());
|
||||
let out = FinalUpgrade::from((out, client_addr.clone()));
|
||||
(out, future::ok(client_addr))
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user