From 1091df77e5c08fc858c9a6b7a0137fc6e9090433 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Fri, 30 Sep 2022 14:15:29 +1000 Subject: [PATCH] Migrate `libp2p_tcp` to new naming convention See https://github.com/libp2p/rust-libp2p/issues/2217. See https://github.com/libp2p/rust-libp2p/issues/2173. --- examples/chat-tokio.rs | 13 ++------ examples/ipfs-private.rs | 5 ++- muxers/mplex/benches/split_send_size.rs | 5 ++- muxers/mplex/tests/async_write.rs | 6 ++-- muxers/mplex/tests/two_peers.rs | 14 ++++---- protocols/dcutr/examples/client.rs | 6 ++-- protocols/identify/src/identify.rs | 4 +-- protocols/identify/src/protocol.rs | 6 ++-- protocols/ping/tests/ping.rs | 4 +-- protocols/relay/examples/relay_v2.rs | 4 +-- protocols/request-response/tests/ping.rs | 7 ++-- src/lib.rs | 14 ++++---- transports/deflate/tests/test.rs | 4 +-- transports/noise/tests/smoke.rs | 20 +++++------ transports/tcp/CHANGELOG.md | 3 ++ transports/tcp/src/lib.rs | 42 +++++++++++++----------- transports/tcp/src/provider/async_io.rs | 2 ++ transports/tcp/src/provider/tokio.rs | 2 ++ transports/websocket/src/lib.rs | 4 +-- 19 files changed, 84 insertions(+), 81 deletions(-) diff --git a/examples/chat-tokio.rs b/examples/chat-tokio.rs index 8ad61ef8a6c..826526646f2 100644 --- a/examples/chat-tokio.rs +++ b/examples/chat-tokio.rs @@ -37,7 +37,6 @@ //! ``` use futures::StreamExt; -use libp2p::tcp::GenTcpConfig; use libp2p::{ core::upgrade, floodsub::{self, Floodsub, FloodsubEvent}, @@ -47,15 +46,9 @@ use libp2p::{ // `TokioMdns` is available through the `mdns-tokio` feature. TokioMdns, }, - mplex, - noise, + mplex, noise, swarm::{SwarmBuilder, SwarmEvent}, - // `TokioTcpTransport` is available through the `tcp-tokio` feature. - tcp::TokioTcpTransport, - Multiaddr, - NetworkBehaviour, - PeerId, - Transport, + tcp, Multiaddr, NetworkBehaviour, PeerId, Transport, }; use std::error::Error; use tokio::io::{self, AsyncBufReadExt}; @@ -72,7 +65,7 @@ async fn main() -> Result<(), Box> { // Create a tokio-based TCP transport use noise for authenticated // encryption and Mplex for multiplexing of substreams on a TCP stream. - let transport = TokioTcpTransport::new(GenTcpConfig::default().nodelay(true)) + let transport = tcp::tokio::Transport::new(tcp::Config::default().nodelay(true)) .upgrade(upgrade::Version::V1) .authenticate( noise::NoiseAuthenticated::xx(&id_keys) diff --git a/examples/ipfs-private.rs b/examples/ipfs-private.rs index b67bfa9009e..3077510d268 100644 --- a/examples/ipfs-private.rs +++ b/examples/ipfs-private.rs @@ -33,7 +33,6 @@ //! to work, the ipfs node needs to be configured to use gossipsub. use async_std::io; use futures::{prelude::*, select}; -use libp2p::tcp::GenTcpConfig; use libp2p::{ core::{ either::EitherTransport, muxing::StreamMuxerBox, transport, transport::upgrade::Version, @@ -46,7 +45,7 @@ use libp2p::{ ping::{self, PingEvent}, pnet::{PnetConfig, PreSharedKey}, swarm::SwarmEvent, - tcp::TcpTransport, + tcp, yamux::YamuxConfig, Multiaddr, NetworkBehaviour, PeerId, Swarm, Transport, }; @@ -60,7 +59,7 @@ pub fn build_transport( let noise_config = noise::NoiseAuthenticated::xx(&key_pair).unwrap(); let yamux_config = YamuxConfig::default(); - let base_transport = TcpTransport::new(GenTcpConfig::default().nodelay(true)); + let base_transport = tcp::async_io::Transport::new(tcp::Config::default().nodelay(true)); let maybe_encrypted = match psk { Some(psk) => EitherTransport::Left( base_transport.and_then(move |socket, _| PnetConfig::new(psk).handshake(socket)), diff --git a/muxers/mplex/benches/split_send_size.rs b/muxers/mplex/benches/split_send_size.rs index c4946e337d0..6e81523ffde 100644 --- a/muxers/mplex/benches/split_send_size.rs +++ b/muxers/mplex/benches/split_send_size.rs @@ -30,9 +30,8 @@ use libp2p::core::muxing::StreamMuxerExt; use libp2p::core::{ identity, multiaddr::multiaddr, muxing, transport, upgrade, Multiaddr, PeerId, Transport, }; -use libp2p::mplex; +use libp2p::{mplex, tcp}; use libp2p::plaintext::PlainText2Config; -use libp2p::tcp::GenTcpConfig; use std::pin::Pin; use std::time::Duration; @@ -166,7 +165,7 @@ fn tcp_transport(split_send_size: usize) -> BenchTransport { let mut mplex = mplex::MplexConfig::default(); mplex.set_split_send_size(split_send_size); - libp2p::tcp::TcpTransport::new(GenTcpConfig::default().nodelay(true)) + tcp::async_io::Transport::new(tcp::Config::default().nodelay(true)) .upgrade(upgrade::Version::V1) .authenticate(PlainText2Config { local_public_key }) .multiplex(mplex) diff --git a/muxers/mplex/tests/async_write.rs b/muxers/mplex/tests/async_write.rs index 4f5bff1b584..ee5f9556a0d 100644 --- a/muxers/mplex/tests/async_write.rs +++ b/muxers/mplex/tests/async_write.rs @@ -21,7 +21,7 @@ use futures::{channel::oneshot, prelude::*}; use libp2p::core::muxing::StreamMuxerExt; use libp2p::core::{upgrade, Transport}; -use libp2p::tcp::TcpTransport; +use libp2p::tcp; #[test] fn async_write() { @@ -32,7 +32,7 @@ fn async_write() { let bg_thread = async_std::task::spawn(async move { let mplex = libp2p::mplex::MplexConfig::new(); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)) .boxed(); @@ -68,7 +68,7 @@ fn async_write() { async_std::task::block_on(async { let mplex = libp2p::mplex::MplexConfig::new(); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)); let mut client = transport.dial(rx.await.unwrap()).unwrap().await.unwrap(); diff --git a/muxers/mplex/tests/two_peers.rs b/muxers/mplex/tests/two_peers.rs index 71581b89464..d734bda12fc 100644 --- a/muxers/mplex/tests/two_peers.rs +++ b/muxers/mplex/tests/two_peers.rs @@ -21,7 +21,7 @@ use futures::{channel::oneshot, prelude::*}; use libp2p::core::muxing::StreamMuxerExt; use libp2p::core::{upgrade, Transport}; -use libp2p::tcp::TcpTransport; +use libp2p::tcp; #[test] fn client_to_server_outbound() { @@ -32,7 +32,7 @@ fn client_to_server_outbound() { let bg_thread = async_std::task::spawn(async move { let mplex = libp2p_mplex::MplexConfig::new(); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)) .boxed(); @@ -68,7 +68,7 @@ fn client_to_server_outbound() { async_std::task::block_on(async { let mplex = libp2p_mplex::MplexConfig::new(); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)) .boxed(); @@ -90,7 +90,7 @@ fn client_to_server_inbound() { let bg_thread = async_std::task::spawn(async move { let mplex = libp2p_mplex::MplexConfig::new(); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)) .boxed(); @@ -126,7 +126,7 @@ fn client_to_server_inbound() { async_std::task::block_on(async { let mplex = libp2p_mplex::MplexConfig::new(); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)) .boxed(); @@ -147,7 +147,7 @@ fn protocol_not_match() { let _bg_thread = async_std::task::spawn(async move { let mplex = libp2p_mplex::MplexConfig::new(); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)) .boxed(); @@ -185,7 +185,7 @@ fn protocol_not_match() { // Make sure they do not connect when protocols do not match let mut mplex = libp2p_mplex::MplexConfig::new(); mplex.set_protocol_name(b"/mplextest/1.0.0"); - let mut transport = TcpTransport::default() + let mut transport = tcp::async_io::Transport::default() .and_then(move |c, e| upgrade::apply(c, mplex, e, upgrade::Version::V1)) .boxed(); match transport.dial(rx.await.unwrap()).unwrap().await { diff --git a/protocols/dcutr/examples/client.rs b/protocols/dcutr/examples/client.rs index e70e54cca3b..d883212e718 100644 --- a/protocols/dcutr/examples/client.rs +++ b/protocols/dcutr/examples/client.rs @@ -32,7 +32,7 @@ use libp2p::noise; use libp2p::ping::{Ping, PingConfig, PingEvent}; use libp2p::relay::v2::client::{self, Client}; use libp2p::swarm::{SwarmBuilder, SwarmEvent}; -use libp2p::tcp::{GenTcpConfig, TcpTransport}; +use libp2p::tcp; use libp2p::Transport; use libp2p::{identity, NetworkBehaviour, PeerId}; use log::info; @@ -91,8 +91,8 @@ fn main() -> Result<(), Box> { let transport = OrTransport::new( relay_transport, - block_on(DnsConfig::system(TcpTransport::new( - GenTcpConfig::default().port_reuse(true), + block_on(DnsConfig::system(tcp::async_io::Transport::new( + tcp::Config::default().port_reuse(true), ))) .unwrap(), ) diff --git a/protocols/identify/src/identify.rs b/protocols/identify/src/identify.rs index e3839624180..d9d06e421f2 100644 --- a/protocols/identify/src/identify.rs +++ b/protocols/identify/src/identify.rs @@ -550,7 +550,7 @@ mod tests { use futures::pin_mut; use libp2p::mplex::MplexConfig; use libp2p::noise; - use libp2p::tcp::{GenTcpConfig, TcpTransport}; + use libp2p::tcp; use libp2p_core::{identity, muxing::StreamMuxerBox, transport, upgrade, PeerId, Transport}; use libp2p_swarm::{Swarm, SwarmEvent}; use std::time::Duration; @@ -564,7 +564,7 @@ mod tests { .into_authentic(&id_keys) .unwrap(); let pubkey = id_keys.public(); - let transport = TcpTransport::new(GenTcpConfig::default().nodelay(true)) + let transport = tcp::async_io::Transport::new(tcp::Config::default().nodelay(true)) .upgrade(upgrade::Version::V1) .authenticate(noise::NoiseConfig::xx(noise_keys).into_authenticated()) .multiplex(MplexConfig::new()) diff --git a/protocols/identify/src/protocol.rs b/protocols/identify/src/protocol.rs index 163ac0aa396..b6745f1c8e7 100644 --- a/protocols/identify/src/protocol.rs +++ b/protocols/identify/src/protocol.rs @@ -291,7 +291,7 @@ pub enum UpgradeError { mod tests { use super::*; use futures::channel::oneshot; - use libp2p::tcp::TcpTransport; + use libp2p::tcp; use libp2p_core::{ identity, upgrade::{self, apply_inbound, apply_outbound}, @@ -308,7 +308,7 @@ mod tests { let (tx, rx) = oneshot::channel(); let bg_task = async_std::task::spawn(async move { - let mut transport = TcpTransport::default().boxed(); + let mut transport = tcp::async_io::Transport::default().boxed(); transport .listen_on("/ip4/127.0.0.1/tcp/0".parse().unwrap()) @@ -351,7 +351,7 @@ mod tests { }); async_std::task::block_on(async move { - let mut transport = TcpTransport::default(); + let mut transport = tcp::async_io::Transport::default(); let socket = transport.dial(rx.await.unwrap()).unwrap().await.unwrap(); let info = apply_outbound(socket, IdentifyProtocol, upgrade::Version::V1) diff --git a/protocols/ping/tests/ping.rs b/protocols/ping/tests/ping.rs index cdf68466e64..af4413fd8d6 100644 --- a/protocols/ping/tests/ping.rs +++ b/protocols/ping/tests/ping.rs @@ -31,7 +31,7 @@ use libp2p::mplex; use libp2p::noise; use libp2p::ping; use libp2p::swarm::{DummyBehaviour, KeepAlive, Swarm, SwarmEvent}; -use libp2p::tcp::{GenTcpConfig, TcpTransport}; +use libp2p::tcp; use libp2p::yamux; use quickcheck::*; use std::{num::NonZeroU8, time::Duration}; @@ -244,7 +244,7 @@ fn mk_transport(muxer: MuxerChoice) -> (PeerId, transport::Boxed<(PeerId, Stream let peer_id = id_keys.public().to_peer_id(); ( peer_id, - TcpTransport::new(GenTcpConfig::default().nodelay(true)) + tcp::async_io::Transport::new(tcp::Config::default().nodelay(true)) .upgrade(upgrade::Version::V1) .authenticate(noise::NoiseAuthenticated::xx(&id_keys).unwrap()) .multiplex(match muxer { diff --git a/protocols/relay/examples/relay_v2.rs b/protocols/relay/examples/relay_v2.rs index 0e75b486ae1..0c90b9db203 100644 --- a/protocols/relay/examples/relay_v2.rs +++ b/protocols/relay/examples/relay_v2.rs @@ -28,7 +28,7 @@ use libp2p::multiaddr::Protocol; use libp2p::ping::{Ping, PingConfig, PingEvent}; use libp2p::relay::v2::relay::{self, Relay}; use libp2p::swarm::{Swarm, SwarmEvent}; -use libp2p::tcp::TcpTransport; +use libp2p::tcp; use libp2p::Transport; use libp2p::{identity, NetworkBehaviour, PeerId}; use libp2p::{noise, Multiaddr}; @@ -46,7 +46,7 @@ fn main() -> Result<(), Box> { let local_peer_id = PeerId::from(local_key.public()); println!("Local peer id: {:?}", local_peer_id); - let tcp_transport = TcpTransport::default(); + let tcp_transport = tcp::async_io::Transport::default(); let transport = tcp_transport .upgrade(upgrade::Version::V1) diff --git a/protocols/request-response/tests/ping.rs b/protocols/request-response/tests/ping.rs index a333ef9111a..77f8efd8fec 100644 --- a/protocols/request-response/tests/ping.rs +++ b/protocols/request-response/tests/ping.rs @@ -25,14 +25,15 @@ use futures::{channel::mpsc, prelude::*, AsyncWriteExt}; use libp2p::core::{ identity, muxing::StreamMuxerBox, - transport::{self, Transport}, + transport, upgrade::{self, read_length_prefixed, write_length_prefixed}, Multiaddr, PeerId, }; use libp2p::noise::NoiseAuthenticated; use libp2p::request_response::*; use libp2p::swarm::{Swarm, SwarmEvent}; -use libp2p::tcp::{GenTcpConfig, TcpTransport}; +use libp2p::tcp; +use libp2p_core::Transport; use rand::{self, Rng}; use std::{io, iter}; @@ -298,7 +299,7 @@ fn mk_transport() -> (PeerId, transport::Boxed<(PeerId, StreamMuxerBox)>) { ( peer_id, - TcpTransport::new(GenTcpConfig::default().nodelay(true)) + tcp::async_io::Transport::new(tcp::Config::default().nodelay(true)) .upgrade(upgrade::Version::V1) .authenticate(NoiseAuthenticated::xx(&id_keys).unwrap()) .multiplex(libp2p::yamux::YamuxConfig::default()) diff --git a/src/lib.rs b/src/lib.rs index 96a197cf516..df747c0b2e0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -204,13 +204,13 @@ pub async fn development_transport( keypair: identity::Keypair, ) -> std::io::Result> { let transport = { - let dns_tcp = dns::DnsConfig::system(tcp::TcpTransport::new( - tcp::GenTcpConfig::new().nodelay(true), + let dns_tcp = dns::DnsConfig::system(tcp::async_io::Transport::new( + tcp::Config::new().nodelay(true), )) .await?; let ws_dns_tcp = websocket::WsConfig::new( - dns::DnsConfig::system(tcp::TcpTransport::new( - tcp::GenTcpConfig::new().nodelay(true), + dns::DnsConfig::system(tcp::async_io::Transport::new( + tcp::Config::new().nodelay(true), )) .await?, ); @@ -264,11 +264,11 @@ pub fn tokio_development_transport( keypair: identity::Keypair, ) -> std::io::Result> { let transport = { - let dns_tcp = dns::TokioDnsConfig::system(tcp::TokioTcpTransport::new( - tcp::GenTcpConfig::new().nodelay(true), + let dns_tcp = dns::TokioDnsConfig::system(tcp::tokio::Transport::new( + tcp::Config::new().nodelay(true), ))?; let ws_dns_tcp = websocket::WsConfig::new(dns::TokioDnsConfig::system( - tcp::TokioTcpTransport::new(tcp::GenTcpConfig::new().nodelay(true)), + tcp::tokio::Transport::new(tcp::Config::new().nodelay(true)), )?); dns_tcp.or_transport(ws_dns_tcp) }; diff --git a/transports/deflate/tests/test.rs b/transports/deflate/tests/test.rs index 726e562d8a2..2fa97853c59 100644 --- a/transports/deflate/tests/test.rs +++ b/transports/deflate/tests/test.rs @@ -21,7 +21,7 @@ use futures::{future, prelude::*}; use libp2p::core::{transport::Transport, upgrade}; use libp2p::deflate::DeflateConfig; -use libp2p::tcp::TcpTransport; +use libp2p::tcp; use quickcheck::{QuickCheck, TestResult}; use rand::RngCore; @@ -46,7 +46,7 @@ fn lot_of_data() { async fn run(message1: Vec) { let new_transport = || { - TcpTransport::default() + tcp::async_io::Transport::default() .and_then(|conn, endpoint| { upgrade::apply( conn, diff --git a/transports/noise/tests/smoke.rs b/transports/noise/tests/smoke.rs index 16dcf4383d1..735c2aa6ffe 100644 --- a/transports/noise/tests/smoke.rs +++ b/transports/noise/tests/smoke.rs @@ -30,7 +30,7 @@ use libp2p::noise::{ Keypair, NoiseAuthenticated, NoiseConfig, NoiseError, NoiseOutput, RemoteIdentity, X25519Spec, X25519, }; -use libp2p::tcp::TcpTransport; +use libp2p::tcp; use log::info; use quickcheck::*; use std::{convert::TryInto, io, net::TcpStream}; @@ -41,7 +41,7 @@ fn core_upgrade_compat() { // i.e. if it compiles, the "test" is considered a success. let id_keys = identity::Keypair::generate_ed25519(); let noise = NoiseAuthenticated::xx(&id_keys).unwrap(); - let _ = TcpTransport::default() + let _ = tcp::async_io::Transport::default() .upgrade(upgrade::Version::V1) .authenticate(noise); } @@ -60,7 +60,7 @@ fn xx_spec() { let server_dh = Keypair::::new() .into_authentic(&server_id) .unwrap(); - let server_transport = TcpTransport::default() + let server_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { upgrade::apply( output, @@ -75,7 +75,7 @@ fn xx_spec() { let client_dh = Keypair::::new() .into_authentic(&client_id) .unwrap(); - let client_transport = TcpTransport::default() + let client_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { upgrade::apply( output, @@ -107,7 +107,7 @@ fn xx() { let client_id_public = client_id.public(); let server_dh = Keypair::::new().into_authentic(&server_id).unwrap(); - let server_transport = TcpTransport::default() + let server_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { upgrade::apply( output, @@ -120,7 +120,7 @@ fn xx() { .boxed(); let client_dh = Keypair::::new().into_authentic(&client_id).unwrap(); - let client_transport = TcpTransport::default() + let client_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { upgrade::apply( output, @@ -152,7 +152,7 @@ fn ix() { let client_id_public = client_id.public(); let server_dh = Keypair::::new().into_authentic(&server_id).unwrap(); - let server_transport = TcpTransport::default() + let server_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { upgrade::apply( output, @@ -165,7 +165,7 @@ fn ix() { .boxed(); let client_dh = Keypair::::new().into_authentic(&client_id).unwrap(); - let client_transport = TcpTransport::default() + let client_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { upgrade::apply( output, @@ -198,7 +198,7 @@ fn ik_xx() { let server_dh = Keypair::::new().into_authentic(&server_id).unwrap(); let server_dh_public = server_dh.public().clone(); - let server_transport = TcpTransport::default() + let server_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { if endpoint.is_listener() { Either::Left(apply_inbound(output, NoiseConfig::ik_listener(server_dh))) @@ -215,7 +215,7 @@ fn ik_xx() { let client_dh = Keypair::::new().into_authentic(&client_id).unwrap(); let server_id_public2 = server_id_public.clone(); - let client_transport = TcpTransport::default() + let client_transport = tcp::async_io::Transport::default() .and_then(move |output, endpoint| { if endpoint.is_dialer() { Either::Left(apply_outbound( diff --git a/transports/tcp/CHANGELOG.md b/transports/tcp/CHANGELOG.md index d5582f43ebb..3e6169856c2 100644 --- a/transports/tcp/CHANGELOG.md +++ b/transports/tcp/CHANGELOG.md @@ -7,8 +7,11 @@ - Remove default features. If you previously depended on `async-std` you need to enable this explicitly now. See [PR 2918]. +- Deprecate types with `Tcp` prefix (`GenTcpConfig`, `TcpTransport` and `TokioTcpTransport`) in favor of referencing them by module / crate. See [PR XXXX]. + [PR 2813]: https://github.com/libp2p/rust-libp2p/pull/2813 [PR 2918]: https://github.com/libp2p/rust-libp2p/pull/2918 +[PR XXXX]: https://github.com/libp2p/rust-libp2p/pull/XXXX # 0.36.0 diff --git a/transports/tcp/src/lib.rs b/transports/tcp/src/lib.rs index f7b897c0d47..343a78ced5f 100644 --- a/transports/tcp/src/lib.rs +++ b/transports/tcp/src/lib.rs @@ -34,6 +34,7 @@ pub use provider::async_io; /// The type of a [`GenTcpTransport`] using the `async-io` implementation. #[cfg(feature = "async-io")] +#[deprecated(since = "0.37.0", note = "Use `async_io::Transport` instead.")] pub type TcpTransport = GenTcpTransport; #[cfg(feature = "tokio")] @@ -41,6 +42,7 @@ pub use provider::tokio; /// The type of a [`GenTcpTransport`] using the `tokio` implementation. #[cfg(feature = "tokio")] +#[deprecated(since = "0.37.0", note = "Use `tokio::Transport` instead.")] pub type TokioTcpTransport = GenTcpTransport; use futures::{ @@ -66,9 +68,12 @@ use std::{ use provider::{Incoming, Provider}; +#[deprecated(since = "0.37.0", note = "Use `Config` instead.")] +pub type GenTcpConfig = Config; + /// The configuration for a TCP/IP transport capability for libp2p. #[derive(Clone, Debug)] -pub struct GenTcpConfig { +pub struct Config { /// TTL to set for opened sockets, or `None` to keep default. ttl: Option, /// `TCP_NODELAY` to set for opened sockets, or `None` to keep default. @@ -157,7 +162,7 @@ impl PortReuse { } } -impl GenTcpConfig { +impl Config { /// Creates a new configuration for a TCP/IP transport: /// /// * Nagle's algorithm, i.e. `TCP_NODELAY`, is _enabled_. @@ -249,12 +254,11 @@ impl GenTcpConfig { /// #[cfg(feature = "async-io")] /// #[async_std::main] /// async fn main() -> std::io::Result<()> { - /// use libp2p_tcp::{GenTcpConfig, TcpTransport}; /// /// let listen_addr1: Multiaddr = "/ip4/127.0.0.1/tcp/9001".parse().unwrap(); /// let listen_addr2: Multiaddr = "/ip4/127.0.0.1/tcp/9002".parse().unwrap(); /// - /// let mut tcp1 = TcpTransport::new(GenTcpConfig::new().port_reuse(true)).boxed(); + /// let mut tcp1 = libp2p_tcp::async_io::Transport::new(libp2p_tcp::Config::new().port_reuse(true)).boxed(); /// tcp1.listen_on( listen_addr1.clone()).expect("listener"); /// match tcp1.select_next_some().await { /// TransportEvent::NewAddress { listen_addr, .. } => { @@ -265,7 +269,7 @@ impl GenTcpConfig { /// _ => {} /// } /// - /// let mut tcp2 = TcpTransport::new(GenTcpConfig::new().port_reuse(true)).boxed(); + /// let mut tcp2 = libp2p_tcp::async_io::Transport::new(libp2p_tcp::Config::new().port_reuse(true)).boxed(); /// tcp2.listen_on( listen_addr2).expect("listener"); /// match tcp2.select_next_some().await { /// TransportEvent::NewAddress { listen_addr, .. } => { @@ -297,7 +301,7 @@ impl GenTcpConfig { } } -impl Default for GenTcpConfig { +impl Default for Config { fn default() -> Self { Self::new() } @@ -307,7 +311,7 @@ pub struct GenTcpTransport where T: Provider + Send, { - config: GenTcpConfig, + config: Config, /// The configuration of port reuse when dialing. port_reuse: PortReuse, @@ -323,7 +327,7 @@ impl GenTcpTransport where T: Provider + Send, { - pub fn new(config: GenTcpConfig) -> Self { + pub fn new(config: Config) -> Self { let port_reuse = if config.enable_port_reuse { PortReuse::Enabled { listen_addrs: Arc::new(RwLock::new(HashSet::new())), @@ -398,7 +402,7 @@ where T: Provider + Send, { fn default() -> Self { - let config = GenTcpConfig::default(); + let config = Config::default(); let port_reuse = if config.enable_port_reuse { PortReuse::Enabled { listen_addrs: Arc::new(RwLock::new(HashSet::new())), @@ -891,7 +895,7 @@ mod tests { env_logger::try_init().ok(); async fn listener(addr: Multiaddr, mut ready_tx: mpsc::Sender) { - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new()).boxed(); + let mut tcp = GenTcpTransport::::new(Config::new()).boxed(); tcp.listen_on(addr).unwrap(); loop { match tcp.select_next_some().await { @@ -913,7 +917,7 @@ mod tests { async fn dialer(mut ready_rx: mpsc::Receiver) { let addr = ready_rx.next().await.unwrap(); - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new()); + let mut tcp = GenTcpTransport::::new(Config::new()); // Obtain a future socket through dialing let mut socket = tcp.dial(addr.clone()).unwrap().await.unwrap(); @@ -960,7 +964,7 @@ mod tests { env_logger::try_init().ok(); async fn listener(addr: Multiaddr, mut ready_tx: mpsc::Sender) { - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new()).boxed(); + let mut tcp = GenTcpTransport::::new(Config::new()).boxed(); tcp.listen_on(addr).unwrap(); loop { @@ -989,7 +993,7 @@ mod tests { async fn dialer(mut ready_rx: mpsc::Receiver) { let dest_addr = ready_rx.next().await.unwrap(); - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new()); + let mut tcp = GenTcpTransport::::new(Config::new()); tcp.dial(dest_addr).unwrap().await.unwrap(); } @@ -1033,7 +1037,7 @@ mod tests { mut ready_tx: mpsc::Sender, port_reuse_rx: oneshot::Receiver>, ) { - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new()).boxed(); + let mut tcp = GenTcpTransport::::new(Config::new()).boxed(); tcp.listen_on(addr).unwrap(); loop { match tcp.select_next_some().await { @@ -1068,7 +1072,7 @@ mod tests { port_reuse_tx: oneshot::Sender>, ) { let dest_addr = ready_rx.next().await.unwrap(); - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new().port_reuse(true)); + let mut tcp = GenTcpTransport::::new(Config::new().port_reuse(true)); tcp.listen_on(addr).unwrap(); match poll_fn(|cx| Pin::new(&mut tcp).poll(cx)).await { TransportEvent::NewAddress { .. } => { @@ -1136,7 +1140,7 @@ mod tests { env_logger::try_init().ok(); async fn listen_twice(addr: Multiaddr) { - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new().port_reuse(true)); + let mut tcp = GenTcpTransport::::new(Config::new().port_reuse(true)); tcp.listen_on(addr).unwrap(); match poll_fn(|cx| Pin::new(&mut tcp).poll(cx)).await { TransportEvent::NewAddress { @@ -1190,7 +1194,7 @@ mod tests { env_logger::try_init().ok(); async fn listen(addr: Multiaddr) -> Multiaddr { - let mut tcp = GenTcpTransport::::new(GenTcpConfig::new()).boxed(); + let mut tcp = GenTcpTransport::::new(Config::new()).boxed(); tcp.listen_on(addr).unwrap(); tcp.select_next_some() .await @@ -1227,13 +1231,13 @@ mod tests { fn test(addr: Multiaddr) { #[cfg(feature = "async-io")] { - let mut tcp = TcpTransport::new(GenTcpConfig::new()); + let mut tcp = async_io::Transport::new(Config::new()); assert!(tcp.listen_on(addr.clone()).is_err()); } #[cfg(feature = "tokio")] { - let mut tcp = TokioTcpTransport::new(GenTcpConfig::new()); + let mut tcp = tokio::Transport::new(Config::new()); assert!(tcp.listen_on(addr).is_err()); } } diff --git a/transports/tcp/src/provider/async_io.rs b/transports/tcp/src/provider/async_io.rs index fc613d8fe86..a8a651c9bd9 100644 --- a/transports/tcp/src/provider/async_io.rs +++ b/transports/tcp/src/provider/async_io.rs @@ -26,6 +26,8 @@ use std::io; use std::net; use std::task::{Context, Poll}; +pub type Transport = crate::GenTcpTransport; + #[derive(Copy, Clone)] pub enum Tcp {} diff --git a/transports/tcp/src/provider/tokio.rs b/transports/tcp/src/provider/tokio.rs index 994a12a33c7..417259dccd0 100644 --- a/transports/tcp/src/provider/tokio.rs +++ b/transports/tcp/src/provider/tokio.rs @@ -30,6 +30,8 @@ use std::net; use std::pin::Pin; use std::task::{Context, Poll}; +pub type Transport = crate::GenTcpTransport; + #[derive(Copy, Clone)] pub enum Tcp {} diff --git a/transports/websocket/src/lib.rs b/transports/websocket/src/lib.rs index 721f9c92848..af243b3d996 100644 --- a/transports/websocket/src/lib.rs +++ b/transports/websocket/src/lib.rs @@ -234,8 +234,8 @@ mod tests { futures::executor::block_on(connect(a)) } - fn new_ws_config() -> WsConfig { - WsConfig::new(tcp::TcpTransport::new(tcp::GenTcpConfig::default())) + fn new_ws_config() -> WsConfig { + WsConfig::new(tcp::async_io::Transport::new(tcp::Config::default())) } async fn connect(listen_addr: Multiaddr) {