chiark / gitweb /
Pass server name to startup code
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 10 Jan 2023 22:35:47 +0000 (22:35 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 11 Jan 2023 02:12:41 +0000 (02:12 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
client/client.rs
server/server.rs
src/config.rs

index a9b50e4d72eaa7ede27db20f4f9c392ffd705130..06643f07f248084384d03ca6f3bc4b98aa990b6e 100644 (file)
@@ -337,7 +337,7 @@ async fn run_client<C:Hcc>(
 async fn main() {
   let opts = <Opts as clap::Parser>::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(), )?;
 
index 595e6a08d64d6fae4d4a2f5f997605362caf17cb..7b34e9b6e2a9a196f354041de995cda4957a017c 100644 (file)
@@ -169,7 +169,7 @@ async fn async_main(opts: Opts, daemon: Option<Daemoniser>) {
 
   config::startup(
     "hippotatd", LinkEnd::Server,
-    &opts.config, &opts.log, |ics|
+    &opts.config, &opts.log, |_, ics|
   {
     let global_config = config::InstanceConfigGlobal::from(&ics);
 
index a1e80ff42922eb20d1e73045fb5d9bc602164f4c..a83d16ec80a35fceb191ca5850012c2ecea808b4 100644 (file)
@@ -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<InstanceConfig> {
+pub fn read(opts: &Opts, end: LinkEnd)
+            -> (Option<ServerName>, Vec<InstanceConfig>)
+{
   let agg = (||{
     let mut agg = Aggregate::new(
       end,
@@ -1031,21 +1033,21 @@ pub fn read(opts: &Opts, end: LinkEnd) -> Vec<InstanceConfig> {
     ics.push(ic);
   }
 
-  ics
+  (server_name, ics)
 }
 
 pub fn startup<F,T>(progname: &str, end: LinkEnd,
                     opts: &Opts, logopts: &LogOpts,
                     f: F) -> T
-  where F: FnOnce(Vec<InstanceConfig>) -> Result<T,AE>
+  where F: FnOnce(Option<ServerName>, Vec<InstanceConfig>) -> Result<T,AE>
 {
   (||{
     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| {