From 02d0ee0b3d9b40dc82425e583d0868dd01dbef8c Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Thu, 21 Sep 2023 10:47:05 +1000 Subject: [PATCH] refactor(webrtc): remove example in favor of `browser-webrtc` example We've moved away from having individual examples in crates in #3111. This one in `transports/webrtc` seems to have slipped through. Pull-Request: #4531. --- Cargo.lock | 6 --- transports/webrtc/Cargo.toml | 10 ---- transports/webrtc/examples/listen_ping.rs | 61 ---------------------- transports/webrtc/src/tokio/certificate.rs | 18 +++---- 4 files changed, 6 insertions(+), 89 deletions(-) delete mode 100644 transports/webrtc/examples/listen_ping.rs diff --git a/Cargo.lock b/Cargo.lock index bd3169af..e4db408a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3180,20 +3180,16 @@ dependencies = [ name = "libp2p-webrtc" version = "0.6.1-alpha" dependencies = [ - "anyhow", "async-trait", "bytes", "env_logger 0.10.0", "futures", "futures-timer", "hex", - "hex-literal", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-noise", - "libp2p-ping", - "libp2p-swarm", "libp2p-webrtc-utils", "log", "multihash", @@ -3206,8 +3202,6 @@ dependencies = [ "tinytemplate", "tokio", "tokio-util", - "unsigned-varint", - "void", "webrtc", ] diff --git a/transports/webrtc/Cargo.toml b/transports/webrtc/Cargo.toml index 0ea589cf..7cd16f2c 100644 --- a/transports/webrtc/Cargo.toml +++ b/transports/webrtc/Cargo.toml @@ -38,20 +38,10 @@ tokio = ["dep:tokio", "dep:tokio-util", "dep:webrtc", "if-watch/tokio"] pem = ["webrtc?/pem"] [dev-dependencies] -anyhow = "1.0" env_logger = "0.10" -hex-literal = "0.4" -libp2p-swarm = { workspace = true, features = ["macros", "tokio"] } -libp2p-ping = { workspace = true } tokio = { version = "1.32", features = ["full"] } -unsigned-varint = { version = "0.7", features = ["asynchronous_codec"] } -void = "1" quickcheck = "1.0.3" [[test]] name = "smoke" required-features = ["tokio"] - -[[example]] -name = "listen_ping" -required-features = ["tokio"] diff --git a/transports/webrtc/examples/listen_ping.rs b/transports/webrtc/examples/listen_ping.rs deleted file mode 100644 index ad867f26..00000000 --- a/transports/webrtc/examples/listen_ping.rs +++ /dev/null @@ -1,61 +0,0 @@ -use anyhow::Result; -use futures::StreamExt; -use libp2p_core::muxing::StreamMuxerBox; -use libp2p_core::Transport; -use libp2p_identity as identity; -use libp2p_ping as ping; -use libp2p_swarm::{Swarm, SwarmBuilder}; -use rand::thread_rng; -use std::time::Duration; -use void::Void; - -/// An example WebRTC server that will accept connections and run the ping protocol on them. -#[tokio::main] -async fn main() -> Result<()> { - let mut swarm = create_swarm()?; - - swarm.listen_on("/ip4/127.0.0.1/udp/0/webrtc-direct".parse()?)?; - - loop { - let event = swarm.next().await.unwrap(); - eprintln!("New event: {event:?}") - } -} - -fn create_swarm() -> Result> { - let id_keys = identity::Keypair::generate_ed25519(); - let peer_id = id_keys.public().to_peer_id(); - let transport = libp2p_webrtc::tokio::Transport::new( - id_keys, - libp2p_webrtc::tokio::Certificate::generate(&mut thread_rng())?, - ); - - let cfg = ping::Config::new().with_interval(Duration::from_millis(10)); - let transport = transport - .map(|(peer_id, conn), _| (peer_id, StreamMuxerBox::new(conn))) - .boxed(); - - Ok( - SwarmBuilder::with_tokio_executor(transport, ping::Behaviour::new(cfg.clone()), peer_id) - .idle_connection_timeout(Duration::from_secs(5)) - .build(), - ) -} - -#[derive(Debug)] -#[allow(clippy::large_enum_variant)] -enum Event { - Ping(ping::Event), -} - -impl From for Event { - fn from(e: ping::Event) -> Self { - Event::Ping(e) - } -} - -impl From for Event { - fn from(event: Void) -> Self { - void::unreachable(event) - } -} diff --git a/transports/webrtc/src/tokio/certificate.rs b/transports/webrtc/src/tokio/certificate.rs index 748cfdb6..7c7c65f0 100644 --- a/transports/webrtc/src/tokio/certificate.rs +++ b/transports/webrtc/src/tokio/certificate.rs @@ -97,24 +97,18 @@ enum Kind { InvalidPEM(#[from] webrtc::Error), } -#[cfg(test)] +#[cfg(all(test, feature = "pem"))] mod test { - #[cfg(feature = "pem")] - use anyhow::Result; + use super::*; + use rand::thread_rng; - #[cfg(feature = "pem")] #[test] - fn test_certificate_serialize_pem_and_from_pem() -> Result<()> { - use super::*; - use rand::thread_rng; - + fn test_certificate_serialize_pem_and_from_pem() { let cert = Certificate::generate(&mut thread_rng()).unwrap(); let pem = cert.serialize_pem(); - let loaded_cert = Certificate::from_pem(&pem)?; + let loaded_cert = Certificate::from_pem(&pem).unwrap(); - assert_eq!(loaded_cert, cert); - - Ok(()) + assert_eq!(loaded_cert, cert) } }