From 3a8e5a3abfa5b641f5e35fb93d2f0463e47ed9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Fri, 3 Jul 2020 10:16:27 +0200 Subject: [PATCH] aquatic_http: update 'valid_until' for established connections --- TODO.md | 3 +-- aquatic_http/src/lib/network/mod.rs | 11 +++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/TODO.md b/TODO.md index df765cf..f298788 100644 --- a/TODO.md +++ b/TODO.md @@ -15,12 +15,11 @@ * scrape info hash parsing: multiple ought to be accepted * info hashes, peer ids: check that whole deserialization and url decoding works as it should. There are suspicously many `\u{fffd}` -* established connections do not get valid_until updated, I think? Might - be the case in aquatic_ws too. * move stuff to common crate with ws: what about Request/InMessage etc? * don't overdo this ## aquatic_ws +* established connections do not get valid_until updated, I think? * tests * ipv4 and ipv6 state split: think about this more.. diff --git a/aquatic_http/src/lib/network/mod.rs b/aquatic_http/src/lib/network/mod.rs index cee0597..db74fac 100644 --- a/aquatic_http/src/lib/network/mod.rs +++ b/aquatic_http/src/lib/network/mod.rs @@ -171,8 +171,15 @@ pub fn run_handshakes_and_read_requests( valid_until: ValidUntil, ){ loop { - let opt_established = connections.get_mut(&poll_token) - .and_then(|c| c.inner.as_mut().left()); + let opt_connection = connections.get_mut(&poll_token); + + let opt_established = if let Some(connection) = opt_connection { + connection.valid_until = valid_until; + + connection.inner.as_mut().left() + } else { + None + }; if let Some(established) = opt_established { match established.read_request(){