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

index 5f684a21bac939afb570af2f62ef803aac151a47..cfd7e06c2fba8586c31bcc8a82fe55cc001b8755 100644 (file)
@@ -109,3 +109,10 @@ pub fn resolve(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
   //eprintln!("{}", &output);
   output.into()
 }
+
+#[proc_macro]
+pub fn into_crlfs(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
+  let input: proc_macro2::TokenStream = input.into();
+  dbg!(&input);
+  input.into()
+}
index a138ca4ecc8531571c15e80d1dad6b3b9bc3e873..40d1f62b2b230de61a7c74eeadf57c41db5b9583 100644 (file)
@@ -3,6 +3,7 @@
 // There is NO WARRANTY.
 
 use hippotat::prelude::*;
+use hippotat_macros::into_crlfs;
 
 type OutstandingRequest<'r> = Pin<Box<
     dyn Future<Output=Option<Bytes>> + Send + 'r
@@ -24,6 +25,38 @@ fn submit_request<'r, 'c:'r, C:HCC>(
   reqs: &mut Vec<OutstandingRequest<'r>>,
   upbound: FramesData,
 ) {
+  let show_timeout = c.ic.http_timeout
+    .saturating_add(Duration::from_nanos(999_999_999))
+    .as_secs();
+
+  let prefix = format!(into_crlfs!(
+    r#"--
+       Content-Type: text/plain; charset="utf-8"
+       Content-Disposition: form-data; name="m"
+
+       {}
+       {}
+       {}
+       {}"#),
+                       &c.ic.link.client,
+                       "xxx token goes here",
+                       c.ic.target_requests_outstanding,
+                       show_timeout,
+  );
+
+  let prefix2 = format!(into_crlfs!(
+    r#"
+       --
+       Content-Type: application/octet-stream
+       Content-Disposition: form-data; name="d"
+       "#),
+  );
+  let suffix = format!(into_crlfs!(
+    r#"
+       --b--
+       "#),
+  );
+
   let body = hyper::body::Body::wrap_stream(
     futures::stream::iter(
       Itertools::intersperse(