};
let mut body = req.into_body();
- let initial = match read_limited_bytes(METADATA_MAX_LEN, &mut body).await {
+ let initial = match read_limited_bytes(
+ METADATA_MAX_LEN, default(), default(), &mut body
+ ).await {
Ok(all) => all,
Err(ReadLimitedError::Truncated { sofar,.. }) => sofar,
Err(ReadLimitedError::Hyper(e)) => throw!(e),
} = req.ok_or_else(|| anyhow!("webservers all shut down!"))?;
match async {
- let whole_request =
- StreamExt::chain(
- stream::once(Ok(
- &initial[initial_remaining..]
- )),
- body.map_ok(
- |by| &*by
- ),
- )
- .try_collect().await.context("read request body")?;
+
+ // xxx size limit
+
+ let whole_request = body.try_fold(
+ initial.into_vec(),
+ |mut w, by| async move { w.extend_from_slice(&by); Ok(w) },
+ ).await.context("read request body")?;
+
+ dbg!(whole_request.len());
+
/*
multipart::ComponentIterator::resume_mid_component(