From: Ian Jackson Date: Tue, 10 Jan 2023 22:35:47 +0000 (+0000) Subject: Pass server name to startup code X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=9c2781c1e4a07da8000bbe5709680dfd4cb2c326;p=hippotat.git Pass server name to startup code Signed-off-by: Ian Jackson --- diff --git a/client/client.rs b/client/client.rs index a9b50e4..06643f0 100644 --- a/client/client.rs +++ b/client/client.rs @@ -337,7 +337,7 @@ async fn run_client( async fn main() { let opts = ::parse(); let (ics,) = config::startup("hippotat", LinkEnd::Client, - &opts.config, &opts.log, |ics| { + &opts.config, &opts.log, |_, ics| { PrintConfigOpt(&&opts.print_config) .implement(&mut ics.iter(), )?; diff --git a/server/server.rs b/server/server.rs index 595e6a0..7b34e9b 100644 --- a/server/server.rs +++ b/server/server.rs @@ -169,7 +169,7 @@ async fn async_main(opts: Opts, daemon: Option) { config::startup( "hippotatd", LinkEnd::Server, - &opts.config, &opts.log, |ics| + &opts.config, &opts.log, |_, ics| { let global_config = config::InstanceConfigGlobal::from(&ics); diff --git a/src/config.rs b/src/config.rs index a1e80ff..a83d16e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -975,7 +975,9 @@ impl<'i,T> ResolveGlobal<'i> for T where T: Eq + Clone + Debug + 'i { } #[throws(AE)] -pub fn read(opts: &Opts, end: LinkEnd) -> Vec { +pub fn read(opts: &Opts, end: LinkEnd) + -> (Option, Vec) +{ let agg = (||{ let mut agg = Aggregate::new( end, @@ -1031,21 +1033,21 @@ pub fn read(opts: &Opts, end: LinkEnd) -> Vec { ics.push(ic); } - ics + (server_name, ics) } pub fn startup(progname: &str, end: LinkEnd, opts: &Opts, logopts: &LogOpts, f: F) -> T - where F: FnOnce(Vec) -> Result + where F: FnOnce(Option, Vec) -> Result { (||{ dedup_eyre_setup()?; - let ics = config::read(opts, end)?; + let (server_name, ics) = config::read(opts, end)?; if ics.is_empty() { throw!(anyhow!("no associations, quitting")); } logopts.log_init()?; - let t = f(ics)?; + let t = f(server_name, ics)?; Ok::<_,AE>(t) })().unwrap_or_else(|e| {