chiark / gitweb /
Config inspection: Support link names on client
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 10 Jan 2023 00:41:17 +0000 (00:41 +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
src/config.rs

index 96476c8eec2b6b2ebf95a57009115cbf4e158e09..c1acdd2482fe510f05433a7eaa3ea6b0f49f01dd 100644 (file)
@@ -21,7 +21,11 @@ pub struct Opts {
 
   /// Print a config item, do not actually run
   ///
-  /// One line is output for each association
+  /// One line is output for each association.
+  /// Additional pseudo-config-keys are recognised:
+  /// `client`: our client virtual IP address;
+  /// `server`: server's logical name in the config;
+  /// `link`: the link name including the `[ ]`.
   #[clap(long)]
   print_config: Option<String>,
 }
@@ -332,7 +336,12 @@ async fn main() {
                                &opts.config, &opts.log, |ics| {
     if let Some(arg) = &opts.print_config {
       for ic in &ics {
-        implement_print_config(arg, &|k| ic.inspect_key(k))?;
+        implement_print_config(arg, &|k| Some(match k {
+          "link" => &ic.link,
+          "server" => &ic.link.server,
+          "client" => &ic.link.client,
+          k => return ic.inspect_key(k),
+        }))?;
       }
       process::exit(0);
     }
index fff0546e6b40dc94845fc771f34ab035e2c25365..c20cfcd90d9db842ddf79797181a38a52a8c19d9 100644 (file)
@@ -142,6 +142,8 @@ impl<'i> Display for DisplayInspectable<'i> {
 }
 
 impl_inspectable_config_value!{ String as Display }
+impl_inspectable_config_value!{ ServerName as Display }
+impl_inspectable_config_value!{ ClientName as Display }
 impl_inspectable_config_value!{ u16 as Display }
 impl_inspectable_config_value!{ u32 as Display }
 impl_inspectable_config_value!{ hyper::Uri as Display }