From 0dae7fd533776c7fcb85e43a4ba8632542bb86f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Mon, 8 Jan 2024 20:16:46 +0100 Subject: [PATCH] ws protocol: remove glob exports; adjust dependent crates --- crates/ws/src/common.rs | 2 +- crates/ws/src/workers/socket/connection.rs | 8 +++++++- crates/ws/src/workers/socket/mod.rs | 4 +++- crates/ws/src/workers/swarm/mod.rs | 3 ++- crates/ws/src/workers/swarm/storage.rs | 7 ++++++- crates/ws_load_test/src/common.rs | 3 +-- crates/ws_load_test/src/main.rs | 1 + crates/ws_load_test/src/network.rs | 14 ++++++++++---- .../bench_deserialize_announce_request.rs | 5 ++++- crates/ws_protocol/src/lib.rs | 16 +++++++++++----- 10 files changed, 46 insertions(+), 17 deletions(-) diff --git a/crates/ws/src/common.rs b/crates/ws/src/common.rs index 8c41fb1..3240546 100644 --- a/crates/ws/src/common.rs +++ b/crates/ws/src/common.rs @@ -3,7 +3,7 @@ use std::{net::IpAddr, sync::Arc}; use aquatic_common::access_list::AccessListArcSwap; pub use aquatic_common::ValidUntil; -use aquatic_ws_protocol::{InfoHash, PeerId}; +use aquatic_ws_protocol::common::{InfoHash, PeerId}; #[derive(Copy, Clone, Debug)] pub enum IpVersion { diff --git a/crates/ws/src/workers/socket/connection.rs b/crates/ws/src/workers/socket/connection.rs index bf24186..82d93ef 100644 --- a/crates/ws/src/workers/socket/connection.rs +++ b/crates/ws/src/workers/socket/connection.rs @@ -9,7 +9,13 @@ use anyhow::Context; use aquatic_common::access_list::{create_access_list_cache, AccessListArcSwap, AccessListCache}; use aquatic_common::rustls_config::RustlsConfig; use aquatic_common::ServerStartInstant; -use aquatic_ws_protocol::*; +use aquatic_ws_protocol::common::{InfoHash, PeerId, ScrapeAction}; +use aquatic_ws_protocol::incoming::{ + AnnounceEvent, AnnounceRequest, InMessage, ScrapeRequest, ScrapeRequestInfoHashes, +}; +use aquatic_ws_protocol::outgoing::{ + ErrorResponse, ErrorResponseAction, OutMessage, ScrapeResponse, ScrapeStatistics, +}; use arc_swap::ArcSwap; use async_tungstenite::WebSocketStream; use futures::stream::{SplitSink, SplitStream}; diff --git a/crates/ws/src/workers/socket/mod.rs b/crates/ws/src/workers/socket/mod.rs index eb284ad..03e17c5 100644 --- a/crates/ws/src/workers/socket/mod.rs +++ b/crates/ws/src/workers/socket/mod.rs @@ -8,7 +8,9 @@ use anyhow::Context; use aquatic_common::privileges::PrivilegeDropper; use aquatic_common::rustls_config::RustlsConfig; use aquatic_common::{PanicSentinel, ServerStartInstant}; -use aquatic_ws_protocol::*; +use aquatic_ws_protocol::common::InfoHash; +use aquatic_ws_protocol::incoming::InMessage; +use aquatic_ws_protocol::outgoing::OutMessage; use arc_swap::ArcSwap; use futures::StreamExt; use glommio::channels::channel_mesh::{MeshBuilder, Partial, Role}; diff --git a/crates/ws/src/workers/swarm/mod.rs b/crates/ws/src/workers/swarm/mod.rs index 9c1f601..7788d12 100644 --- a/crates/ws/src/workers/swarm/mod.rs +++ b/crates/ws/src/workers/swarm/mod.rs @@ -4,6 +4,8 @@ use std::cell::RefCell; use std::rc::Rc; use std::time::Duration; +use aquatic_ws_protocol::incoming::InMessage; +use aquatic_ws_protocol::outgoing::OutMessage; use futures::StreamExt; use glommio::channels::channel_mesh::{MeshBuilder, Partial, Role, Senders}; use glommio::enclose; @@ -12,7 +14,6 @@ use glommio::timer::TimerActionRepeat; use rand::{rngs::SmallRng, SeedableRng}; use aquatic_common::{PanicSentinel, ServerStartInstant}; -use aquatic_ws_protocol::*; use crate::common::*; use crate::config::Config; diff --git a/crates/ws/src/workers/swarm/storage.rs b/crates/ws/src/workers/swarm/storage.rs index 43c99b3..37cf153 100644 --- a/crates/ws/src/workers/swarm/storage.rs +++ b/crates/ws/src/workers/swarm/storage.rs @@ -1,6 +1,11 @@ use std::sync::Arc; use aquatic_common::access_list::{create_access_list_cache, AccessListArcSwap, AccessListCache}; +use aquatic_ws_protocol::incoming::{AnnounceEvent, AnnounceRequest, ScrapeRequest}; +use aquatic_ws_protocol::outgoing::{ + AnnounceResponse, AnswerOutMessage, ErrorResponse, ErrorResponseAction, OfferOutMessage, + OutMessage, ScrapeResponse, ScrapeStatistics, +}; use hashbrown::HashMap; use metrics::Gauge; use rand::rngs::SmallRng; @@ -8,7 +13,7 @@ use rand::rngs::SmallRng; use aquatic_common::{ extract_response_peers, IndexMap, SecondsSinceServerStart, ServerStartInstant, }; -use aquatic_ws_protocol::*; +use aquatic_ws_protocol::common::*; use crate::common::*; use crate::config::Config; diff --git a/crates/ws_load_test/src/common.rs b/crates/ws_load_test/src/common.rs index 1e8266d..d1d04c5 100644 --- a/crates/ws_load_test/src/common.rs +++ b/crates/ws_load_test/src/common.rs @@ -1,9 +1,8 @@ use std::sync::{atomic::AtomicUsize, Arc}; +use aquatic_ws_protocol::common::InfoHash; use rand_distr::Gamma; -pub use aquatic_ws_protocol::*; - #[derive(Default)] pub struct Statistics { pub requests: AtomicUsize, diff --git a/crates/ws_load_test/src/main.rs b/crates/ws_load_test/src/main.rs index 8be81cc..91cd8ff 100644 --- a/crates/ws_load_test/src/main.rs +++ b/crates/ws_load_test/src/main.rs @@ -4,6 +4,7 @@ use std::time::{Duration, Instant}; use aquatic_common::cpu_pinning::glommio::{get_worker_placement, set_affinity_for_util_worker}; use aquatic_common::cpu_pinning::WorkerIndex; +use aquatic_ws_protocol::common::InfoHash; use glommio::LocalExecutorBuilder; use rand::prelude::*; use rand_distr::Gamma; diff --git a/crates/ws_load_test/src/network.rs b/crates/ws_load_test/src/network.rs index ee045fa..55da243 100644 --- a/crates/ws_load_test/src/network.rs +++ b/crates/ws_load_test/src/network.rs @@ -6,10 +6,16 @@ use std::{ time::Duration, }; +use aquatic_ws_protocol::incoming::{ + AnnounceEvent, AnnounceRequest, AnnounceRequestOffer, InMessage, ScrapeRequestInfoHashes, +}; +use aquatic_ws_protocol::outgoing::OutMessage; use aquatic_ws_protocol::{ - AnnounceAction, AnnounceEvent, AnnounceRequest, AnnounceRequestOffer, InMessage, InfoHash, - OfferId, OutMessage, PeerId, RtcAnswer, RtcAnswerType, RtcOffer, RtcOfferType, ScrapeAction, - ScrapeRequest, ScrapeRequestInfoHashes, + common::{ + AnnounceAction, InfoHash, OfferId, PeerId, RtcAnswer, RtcAnswerType, RtcOffer, + RtcOfferType, ScrapeAction, + }, + incoming::ScrapeRequest, }; use async_tungstenite::{client_async, WebSocketStream}; use futures::{SinkExt, StreamExt}; @@ -168,7 +174,7 @@ impl Connection { }), event: None, offers: None, - action: aquatic_ws_protocol::AnnounceAction::Announce, + action: AnnounceAction::Announce, peer_id: self.peer_id, bytes_left: Some(bytes_left), numwant: Some(0), diff --git a/crates/ws_protocol/benches/bench_deserialize_announce_request.rs b/crates/ws_protocol/benches/bench_deserialize_announce_request.rs index 7b961e7..c239b16 100644 --- a/crates/ws_protocol/benches/bench_deserialize_announce_request.rs +++ b/crates/ws_protocol/benches/bench_deserialize_announce_request.rs @@ -1,7 +1,10 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; use std::time::Duration; -use aquatic_ws_protocol::*; +use aquatic_ws_protocol::{ + common::*, + incoming::{AnnounceEvent, AnnounceRequest, AnnounceRequestOffer, InMessage}, +}; pub fn bench(c: &mut Criterion) { let info_hash = InfoHash([ diff --git a/crates/ws_protocol/src/lib.rs b/crates/ws_protocol/src/lib.rs index 8a6bed9..c61681a 100644 --- a/crates/ws_protocol/src/lib.rs +++ b/crates/ws_protocol/src/lib.rs @@ -14,16 +14,22 @@ pub mod common; pub mod incoming; pub mod outgoing; -pub use common::*; -pub use incoming::*; -pub use outgoing::*; - #[cfg(test)] mod tests { use quickcheck::Arbitrary; use quickcheck_macros::quickcheck; - use super::*; + use crate::{ + common::*, + incoming::{ + AnnounceEvent, AnnounceRequest, AnnounceRequestOffer, InMessage, ScrapeRequest, + ScrapeRequestInfoHashes, + }, + outgoing::{ + AnnounceResponse, AnswerOutMessage, OfferOutMessage, OutMessage, ScrapeResponse, + ScrapeStatistics, + }, + }; fn arbitrary_20_bytes(g: &mut quickcheck::Gen) -> [u8; 20] { let mut bytes = [0u8; 20];