From: Ian Jackson Date: Mon, 9 Aug 2021 00:45:13 +0000 (+0100) Subject: server: get token X-Git-Tag: hippotat/1.0.0~191 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;ds=sidebyside;h=5a54190ff21f44a0b6ba7702a8bd802042b18b1c;p=hippotat.git server: get token Signed-off-by: Ian Jackson --- diff --git a/src/bin/server.rs b/src/bin/server.rs index 42e3785..1878512 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -90,7 +90,9 @@ async fn handle( let mut meta = MetadataFieldIterator::new(comp.payload_start); - let client: ClientName = meta.need().context("client addr")?; + let client: ClientName = meta.need_parse().context("client addr")?; + let token: &str = meta.need_next().context("token")?; + // let client = all_clients.get(&client).ok_or_else(|| anyhow!(BAD_CLIENT))?; eprintln!("boundary={:?} start={} name={:?} client={}", diff --git a/src/multipart.rs b/src/multipart.rs index 0eaabda..1c0be40 100644 --- a/src/multipart.rs +++ b/src/multipart.rs @@ -88,7 +88,13 @@ impl<'b> MetadataFieldIterator<'b> { } } #[throws(AE)] - pub fn need(&mut self) -> T + pub fn need_next(&mut self) -> &'b str + { + self.next().ok_or_else(|| anyhow!("missing"))?? + } + + #[throws(AE)] + pub fn need_parse(&mut self) -> T where T: FromStr, AE: From, {