chiark / gitweb /
fixes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 18 Nov 2020 21:58:57 +0000 (21:58 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 18 Nov 2020 21:58:57 +0000 (21:58 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otter.rs
src/cmdlistener.rs
src/mgmtchannel.rs

index 0be792953f7e11a2e60e9eea130e682b82257ece..ce0390b79c98267dd9d4279d1030fff04289272a 100644 (file)
@@ -676,6 +676,8 @@ mod reset_game {
     };
     let game : GameSpec = read_spec(&args.game_file, "game spec")?;
 
+    let mut insns = vec![];
+
     if let Some(table_file) = args.table_file {
       let table_spec = read_spec(&table_file, "table spec")?;
       let game = chan.game.clone();
@@ -689,11 +691,9 @@ mod reset_game {
         Err(e)
       })?;
 
-      setup_table(&ma, &table_spec)?; 
+      insns.extend(setup_table(&ma, &table_spec)?);
     }
 
-    let mut insns = vec![];
-
     for p in chan.get_pieces()? {
       insns.push(MgmtGameInstruction::DeletePiece(p.piece));
     }
index b17e7382c8376e3425d2f7d5808c3684ddab52e5..1bcce648f0ea328dec04e3c874080f3c57ea5651 100644 (file)
@@ -493,7 +493,6 @@ fn execute_game_insn<'cs, 'igr, 'ig : 'igr>(
     },
 
     ClearLog => {
-      let ag = AccountsGuard::lock();
       let (ig, _) = cs.check_acl(&ag, ig, PCH::Instance, &[TP::Super])?;
       ig.gs.log.clear();
       for ipr in ig.iplayers.values_mut() {
@@ -515,7 +514,6 @@ fn execute_game_insn<'cs, 'igr, 'ig : 'igr>(
     },
 
     SetACL { acl } => {
-      let ag = AccountsGuard::lock();
       let (ig, _) = cs.check_acl(&ag, ig, PCH::Instance, &[TP::Super])?;
       ig.acl = acl.into();
       let mut log = vec![ LogEntry {
index edef163f89639985face9502fe794c55b627cdab..6325f51a67a90ed513255b66597f71795860f9ac 100644 (file)
@@ -33,8 +33,8 @@ impl MgmtChannel {
   pub fn read<T:DeserializeOwned>(&mut self) -> T {
     use MgmtChannelReadError::*;
     let l = self.read.next().ok_or(EOF)??;
-    let v = serde_json::from_str(&l)
-      .map_err(|e| Parse(format!("{}", &e)))?;
+    let r = serde_json::from_str(&l);
+    let v = r.map_err(|e| Parse(format!("{}", &e)))?;
     v
   }