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(){