From: Ian Jackson Date: Sat, 4 Jul 2020 01:53:11 +0000 (+0100) Subject: lookup_token -> OE X-Git-Tag: otter-0.2.0~1483 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=0daf63f7ec4b5b23d6f3236a6a26154010fcd2d5;p=otter.git lookup_token -> OE --- diff --git a/src/bin/server.rs b/src/bin/server.rs index 202efe73..2c501827 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -64,8 +64,7 @@ struct SessionForm { #[post("/_/session", format="json", data="
")] fn session(form : Json) -> Result { // make session in this game, log a message to other players - let iad = lookup_token(&form.ptoken) - .ok_or_else(|| anyhow!("unknown token"))?; + let iad = lookup_token(&form.ptoken)?; let player = iad.ident; let c = { let mut ig = iad.g.lock().map_err(|e| anyhow!("lock poison {:?}",&e))?; @@ -137,7 +136,7 @@ struct ApiGrab { #[post("/_/api/grab", format="json", data="")] #[throws(RE)] fn api_grab(form : Json) -> impl response::Responder<'static> { - let iad = lookup_token(&form.t).ok_or_else(||anyhow!("unknown token"))?; + let iad = lookup_token(&form.t)?; let client = iad.ident; let mut g = iad.g.lock().map_err(|e| anyhow!("lock poison {:?}",&e))?; let g = &mut *g; diff --git a/src/global.rs b/src/global.rs index b686cfd4..38d1b42d 100644 --- a/src/global.rs +++ b/src/global.rs @@ -83,8 +83,9 @@ impl AccessId for ClientId { } pub fn lookup_token(s : &str) - -> Option> { + -> Result, OE> { Id::global_tokens().read().unwrap().get(s).cloned() + .ok_or(Id::ERROR) } pub fn record_token(iad : InstanceAccessDetails)