// addr: SocketAddr,
_req: hyper::Request<hyper::Body>
) -> Result<hyper::Response<hyper::Body>, Infallible> {
- Ok(hyper::Response::new(hyper::Body::from("Hello World")))
+
+ let (boundary, warning) = (||{
+ let mut ctypes = req.headers().get_all();
+ let t = ctypes.next().ok_or_else(|| anyhow!("missing Content-Type"))?;
+ if ctypes.next().is_soe() { throw!(anyhow!("several Content-Type")) }
+ let t: mime::Mime = t.parse().context("parse Content-Type")?;
+ if t.type_() != "multipart" { throw!(anyhow!("not multipart/")) }
+ let b = t.get_param(mime::BOUNDARY).context("missing boundary=...")?;
+ let warning = (||{
+ if t.subtype != "form-data" { throw!(anyhow("not multipart/form-data")) }
+ Ok::<_,AE>(())
+ })();
+ Ok::<_,AE>((b, warning))
+ }()).unwrap_or_else(|e| {
+ ("b", Err(e.context("guessing boundary")))
+ });
+
+ eprintln!("boundary={} warning={}", boundary, warning);
+
+
+ Ok(hyper::Response::new(hyper::Body::from("Hello World")))
}