From: Ian Jackson Date: Sun, 15 Aug 2021 17:16:53 +0000 (+0100) Subject: server: use Content-Length length hint in reading body, redo X-Git-Tag: hippotat/1.0.0~175 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=hippotat.git;a=commitdiff_plain;h=a621568559d15c2eb4abcb270065d197301afd1d server: use Content-Length length hint in reading body, redo Signed-off-by: Ian Jackson --- diff --git a/src/bin/server.rs b/src/bin/server.rs index fec69cf..e7daf48 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -256,17 +256,17 @@ async fn run_client(_ic: Arc, req = web.recv() => { let WebRequest { - initial, initial_remaining, length_hint, body, + initial, initial_remaining, length_hint, mut body, reply_to, warnings, } = req.ok_or_else(|| anyhow!("webservers all shut down!"))?; match async { - // xxx size limit - - let whole_request = body.try_fold( - initial.into_vec(), - |mut w, by| async move { w.extend_from_slice(&by); Ok(w) }, + let whole_request = read_limited_bytes( + usize::MAX /* xxx */, + initial, + length_hint, + &mut body ).await.context("read request body")?; dbg!(whole_request.len());