From a3626400f4dcecdb2eedbbd04a357ae62f9aa4ac Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 8 Aug 2021 17:52:28 +0100 Subject: [PATCH] server: wip Signed-off-by: Ian Jackson --- src/bin/server.rs | 7 ++++++- src/multipart.rs | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bin/server.rs b/src/bin/server.rs index 8446dd3..9bba6dd 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -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); diff --git a/src/multipart.rs b/src/multipart.rs index 82ce4ac..e01b0f3 100644 --- a/src/multipart.rs +++ b/src/multipart.rs @@ -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 } -- 2.30.2