From cd951e18a0add1bc91cec345da414b335c18f7f1 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 27 Aug 2021 16:35:45 +0200 Subject: [PATCH] Factor out gatekeeper::bind --- syndicate-server/src/gatekeeper.rs | 13 +++++++++++++ syndicate-server/src/main.rs | 18 +++++------------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/syndicate-server/src/gatekeeper.rs b/syndicate-server/src/gatekeeper.rs index dffc62d..b65bc34 100644 --- a/syndicate-server/src/gatekeeper.rs +++ b/syndicate-server/src/gatekeeper.rs @@ -3,8 +3,21 @@ use std::sync::Arc; use syndicate::actor::*; use syndicate::during::DuringResult; use syndicate::schemas::gatekeeper; +use syndicate::sturdy; use syndicate::value::NestedValue; +pub fn bind( + t: &mut Activation, + oid: syndicate::schemas::sturdy::_Any, + key: [u8; 16], + ds: &Arc, + target: Arc, +) { + let sr = sturdy::SturdyRef::mint(oid.clone(), &key); + tracing::info!(cap = debug(&AnyValue::from(&sr)), hex = display(sr.to_hex())); + ds.assert(t, &gatekeeper::Bind { oid, key: key.to_vec(), target }); +} + pub fn handle_resolve( ds: &mut Arc, t: &mut Activation, diff --git a/syndicate-server/src/main.rs b/syndicate-server/src/main.rs index ad3525e..4133e60 100644 --- a/syndicate-server/src/main.rs +++ b/syndicate-server/src/main.rs @@ -5,7 +5,6 @@ use structopt::StructOpt; use syndicate::actor::*; use syndicate::dataspace::*; -use syndicate::sturdy; use syndicate::value::NestedValue; @@ -59,28 +58,21 @@ async fn main() -> Result<(), Box> { tracing::trace!("startup"); - Actor::new().boot(syndicate::name!("dataspace"), move |t| { - let ds = Cap::new(&t.create(Dataspace::new())); + Actor::new().boot(tracing::Span::current(), move |t| { + let root_ds = Cap::new(&t.create(Dataspace::new())); - { - use syndicate::schemas::gatekeeper; - let key = vec![0; 16]; - let sr = sturdy::SturdyRef::mint(AnyValue::new("syndicate"), &key); - tracing::info!(rootcap = debug(&AnyValue::from(&sr))); - tracing::info!(rootcap = display(sr.to_hex())); - ds.assert(t, &gatekeeper::Bind { oid: sr.oid.clone(), key, target: ds.clone() }); - } + gatekeeper::bind(t, AnyValue::new("syndicate"), [0; 16], &root_ds, Arc::clone(&root_ds)); if config.debt_reporter { services::debt_reporter::spawn(t); } if config.inferior { - services::stdio_relay_listener::spawn(t, Arc::clone(&ds)); + services::stdio_relay_listener::spawn(t, Arc::clone(&root_ds)); } let gateway = Cap::guard(&t.create( - syndicate::entity(Arc::clone(&ds)).on_asserted(gatekeeper::handle_resolve))); + syndicate::entity(Arc::clone(&root_ds)).on_asserted(gatekeeper::handle_resolve))); for port in config.ports.clone() { services::tcp_relay_listener::spawn(t, Arc::clone(&gateway), port);