chiark / gitweb /
wip request mime
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 31 Jul 2021 18:10:27 +0000 (19:10 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 31 Jul 2021 18:10:27 +0000 (19:10 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/client.rs
src/prelude.rs

index ba311965fc67c097b0b6474074f4321d1cb2f19c..20754484f9455fdebdd1bdc68de3cbc022c78792 100644 (file)
@@ -29,7 +29,7 @@ fn submit_request<'r, 'c:'r, C:HCC>(
     .saturating_add(Duration::from_nanos(999_999_999))
     .as_secs();
 
-  let prefix = format!(into_crlfs!(
+  let prefix1 = format!(into_crlfs!(
     r#"--
        Content-Type: text/plain; charset="utf-8"
        Content-Disposition: form-data; name="m"
@@ -57,15 +57,21 @@ fn submit_request<'r, 'c:'r, C:HCC>(
        --b--
        "#),
   );
-eprintln!(">{}[{}D]{}<", &prefix, &prefix2, &suffix);
 
   let body = hyper::body::Body::wrap_stream(
-    futures::stream::iter(
+    futures::stream::iter(itertools::chain![
+      array::IntoIter::new([
+        Ok::<Bytes,Void>( prefix1.into() ),
+        Ok::<Bytes,Void>( prefix2.into() ),
+      ]).take(
+        if upbound.is_empty() { 1 } else { 2 }
+      ),
       Itertools::intersperse(
         upbound.into_iter().map(|u| Bytes::from(u)),
         SLIP_END_SLICE.into()
-      ).map(Ok::<_,Void>)
-    )
+      ).map(Ok::<Bytes,Void>),
+      [ Ok::<Bytes,Void>( suffix.into() ) ],
+    ])
   );
 
   let req = hyper::Request::post(&c.ic.url).body(body)
index b23be67e30b7d1e28d98e8390ef88b3ab7db9b57..8794519618511052ebe59006b823f0165b31db07 100644 (file)
@@ -2,6 +2,7 @@
 // SPDX-License-Identifier: AGPL-3.0-or-later
 // There is NO WARRANTY.
 
+pub use std::array;
 pub use std::collections::{BTreeSet, HashMap};
 pub use std::convert::TryInto;
 pub use std::borrow::Cow;