chiark
/
gitweb
/
~ian
/
hippotat.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
server: use Content-Length length hint in reading body, redo
[hippotat.git]
/
src
/
bin
/
server.rs
diff --git
a/src/bin/server.rs
b/src/bin/server.rs
index fec69cf75edacbf7d56681ed33717c429c36e24f..e7daf489c53f929bb0d9f3c60b02d7410204136a 100644
(file)
--- a/
src/bin/server.rs
+++ b/
src/bin/server.rs
@@
-256,17
+256,17
@@
async fn run_client(_ic: Arc<InstanceConfig>,
req = web.recv() =>
{
let WebRequest {
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 {
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());
).await.context("read request body")?;
dbg!(whole_request.len());