From ce55a0ee42a4aa330c32b9cd21729f9ecef1e449 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 3 Jan 2021 10:54:09 +0000 Subject: [PATCH] wip links - does not compile Signed-off-by: Ian Jackson --- daemon/cmdlistener.rs | 6 +++++- daemon/session.rs | 3 ++- src/bin/otter.rs | 8 +++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index 5a397c20..3a3bc05b 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -433,7 +433,11 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( } ).collect::,ME>>()?; let table_size = ig.gs.table_size; - let info = MgmtGameResponseGameInfo { table_size, players }; + let links = ig.links.iter().filter_map( + |(k,v)| + Some((k.clone(), v.as_ref()?.clone().0)) + ).collect(); + let info = MgmtGameResponseGameInfo { table_size, players, links }; Ok(Resp::Info(info)) })?, diff --git a/daemon/session.rs b/daemon/session.rs index fabce96a..3f740651 100644 --- a/daemon/session.rs +++ b/daemon/session.rs @@ -187,7 +187,8 @@ fn session_inner(form : Json, nick : gpl.nick.clone(), sse_url_prefix, ptoken: form.ptoken.clone(), - links: ig.links.iter().map(|(k,v)| (k.clone(), v.clone())).collect(), + links: ig.links.iter() + .filter_map(|(k,v)| Some((k.clone(), v.clone()?))).collect(), load : serde_json::to_string(&DataLoad { players: load_players, last_log_ts: timestamp_abbrev.unwrap_or_default(), diff --git a/src/bin/otter.rs b/src/bin/otter.rs index 79a6dccc..cc963288 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -651,6 +651,7 @@ fn setup_table(_ma: &MainOpts, spec: &TableSpec) -> Vec { let mut insns = vec![]; insns.push(MGI::ClearLog); insns.push(MGI::SetACL { acl }); + insns.push(MGI::SetLinks(links.clone())); insns } @@ -880,13 +881,14 @@ mod set_link { }, Some(url) => { + let kind = args.kind.unwrap(); chan.alter_game(vec![ if url == "" { - MGI::SetLink { kind: args.kind, url } + MGI::SetLink { kind, url } } else { - MGI::RemoveLink { kind: args.kind } + MGI::RemoveLink { kind } } - ])?; + ], None)?; }, } } -- 2.30.2