chiark / gitweb /
server: wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 8 Aug 2021 16:52:28 +0000 (17:52 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 8 Aug 2021 16:52:28 +0000 (17:52 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/server.rs
src/multipart.rs

index 8446dd3b1b13c5e680a46d3cf1f223ea4df6cd45..9bba6dd8420376bb0cf1ee3d515bbd62fecc9d88 100644 (file)
@@ -71,7 +71,12 @@ async fn handle(
     else { throw!(anyhow!("initial boundary not found")) };
 
     let comp = multipart::process_component
-      (&mut warnings, &initial[start..], PartName::m)?;
+      (&mut warnings, &initial[start..], PartName::m)?
+      .ok_or_else(|| anyhow!(r#"no "m" component"#))?;
+
+    if comp.name != PartName::m { throw!(anyhow!(
+      r#"first multipart component must be name="m""#
+    )) }
 
     eprintln!("boundary={:?} initial={:?} start={} comp={:?}",
               boundary, initial, start, &comp);
index 82ce4ac4af73e775871604a36945edc998129ba5..e01b0f30eb24a5878c6655349d48361d0f0333cd 100644 (file)
@@ -11,6 +11,7 @@ pub struct Component<'b> {
 }
 
 #[derive(Debug)]
+#[derive(Eq,PartialEq,Ord,PartialOrd,Hash)]
 #[allow(non_camel_case_types)]
 pub enum PartName { m, d, Other }