chiark / gitweb /
lookup_token -> OE
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 4 Jul 2020 01:53:11 +0000 (02:53 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 4 Jul 2020 01:53:11 +0000 (02:53 +0100)
src/bin/server.rs
src/global.rs

index 202efe73421eb8be2592b1146711bcbf72e74ed6..2c501827a50ec5aa7adc5c3bf18a55e7d442fbf9 100644 (file)
@@ -64,8 +64,7 @@ struct SessionForm {
 #[post("/_/session", format="json", data="<form>")]
 fn session(form : Json<SessionForm>) -> Result<Template,RE> {
   // 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="<form>")]
 #[throws(RE)]
 fn api_grab(form : Json<ApiGrab>) -> 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;
index b686cfd48e68538789c62f5ae72e9a8509535876..38d1b42d0a032ac4805079fbabe5ac4bc59ac843 100644 (file)
@@ -83,8 +83,9 @@ impl AccessId for ClientId {
 }
 
 pub fn lookup_token<Id : AccessId>(s : &str)
-      -> Option<InstanceAccessDetails<Id>> {
+      -> Result<InstanceAccessDetails<Id>, OE> {
   Id::global_tokens().read().unwrap().get(s).cloned()
+    .ok_or(Id::ERROR)
 }
 
 pub fn record_token<Id : AccessId>(iad : InstanceAccessDetails<Id>)