From d4c95d89c0f8c4a56326912193682c0aa5ec2330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Mon, 8 Jan 2024 18:54:11 +0100 Subject: [PATCH] ws: swarm: remove peer ValidUntil update task, just create when needed --- crates/ws/src/workers/swarm/mod.rs | 18 ------------------ crates/ws/src/workers/swarm/storage.rs | 3 ++- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/crates/ws/src/workers/swarm/mod.rs b/crates/ws/src/workers/swarm/mod.rs index 599ad67..9c1f601 100644 --- a/crates/ws/src/workers/swarm/mod.rs +++ b/crates/ws/src/workers/swarm/mod.rs @@ -125,25 +125,8 @@ async fn handle_request_stream( S: futures_lite::Stream + ::std::marker::Unpin, { let rng = Rc::new(RefCell::new(SmallRng::from_entropy())); - - let max_peer_age = config.cleaning.max_peer_age; - let peer_valid_until = Rc::new(RefCell::new(ValidUntil::new( - server_start_instant, - max_peer_age, - ))); - - // Periodically update peer_valid_until - TimerActionRepeat::repeat(enclose!((peer_valid_until) move || { - enclose!((peer_valid_until) move || async move { - *peer_valid_until.borrow_mut() = ValidUntil::new(server_start_instant, max_peer_age); - - Some(Duration::from_secs(1)) - })() - })); - let config = &config; let torrents = &torrents; - let peer_valid_until = &peer_valid_until; let rng = &rng; let out_message_senders = &out_message_senders; @@ -160,7 +143,6 @@ async fn handle_request_stream( &mut rng.borrow_mut(), &mut out_messages, server_start_instant, - peer_valid_until.borrow().to_owned(), meta, request, ) diff --git a/crates/ws/src/workers/swarm/storage.rs b/crates/ws/src/workers/swarm/storage.rs index 7ad311d..43c99b3 100644 --- a/crates/ws/src/workers/swarm/storage.rs +++ b/crates/ws/src/workers/swarm/storage.rs @@ -62,7 +62,6 @@ impl TorrentMaps { rng: &mut SmallRng, out_messages: &mut Vec<(OutMessageMeta, OutMessage)>, server_start_instant: ServerStartInstant, - valid_until: ValidUntil, request_sender_meta: InMessageMeta, request: AnnounceRequest, ) { @@ -72,6 +71,8 @@ impl TorrentMaps { self.ipv6.entry(request.info_hash).or_default() }; + let valid_until = ValidUntil::new(server_start_instant, config.cleaning.max_peer_age); + // If there is already a peer with this peer_id, check that connection id // is same as that of request sender. Otherwise, ignore request. Since // peers have access to each others peer_id's, they could send requests