};
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(), &mut body
+ ).await {
Ok(all) => all,
Err(ReadLimitedError::Truncated { sofar,.. }) => sofar,
Err(ReadLimitedError::Hyper(e)) => throw!(e),
reply_to, warnings,
} = req.ok_or_else(|| anyhow!("webservers all shut down!"))?;
- match (||{
+ 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) },
+ ).await.context("read request body")?;
+
+ dbg!(whole_request.len());
+
+/*
+
+ multipart::ComponentIterator::resume_mid_component(
+ &initial[initial_remaining..],
+ */
+
Ok::<_,AE>(())
- })() {
+ }.await {
Ok(()) => outstanding.push_back(Outstanding {
reply_to: reply_to,
max_requests_outstanding: 42, // xxx