chiark / gitweb /
config: Fix algorithm problem with instance enumration
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Aug 2021 00:08:11 +0000 (01:08 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Aug 2021 00:08:11 +0000 (01:08 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/config.rs

index dd4950e1c6116312c6823d7f3b5913154943cadc..76e98bf5dc39141dcfeb902a5f84ec2005109840 100644 (file)
@@ -431,10 +431,14 @@ impl Aggregate {
     // Add links which are justified by blanket secrets
     for (client, server) in iproduct!(
       putative_clients.into_iter().filter(
-        |c| secret_global || secrets_anyserver.contains(c)
+        |c| secret_global
+         || secrets_anyserver.contains(c)
+         || ! secrets_anyclient.is_empty()
       ),
       putative_servers.iter().cloned().filter(
-        |s| secret_global || secrets_anyclient.contains(s)
+        |s| secret_global
+         || secrets_anyclient.contains(s)
+         || ! secrets_anyserver.is_empty()
       )
     ) {
       links.insert(LinkName {
@@ -837,6 +841,8 @@ pub fn read(opts: &Opts, end: LinkEnd) -> Vec<InstanceConfig> {
       ],
     };
 
+    if rctx.first_of_raw("secret", SKL::Ordinary).is_none() { continue }
+
     let mut ic = InstanceConfig::resolve_instance(&rctx)
       .with_context(|| format!("resolve config for {}", &link))?;