]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Allow notify of catz; rename name field to zone for consistency
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 8 Oct 2024 07:39:00 +0000 (09:39 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 4 Nov 2024 14:20:14 +0000 (15:20 +0100)
pdns/recursordist/rec-xfr.cc
pdns/recursordist/settings/cxxsupport.cc
pdns/recursordist/settings/rust-bridge-in.rs
pdns/recursordist/settings/rust/src/bridge.rs
pdns/recursordist/test-settings.cc

index a7b07cff3df639d3cc2a57aeaa148ec743894f81..265617cb4f273714ec6f178905cb9515b35b88c7 100644 (file)
@@ -34,7 +34,6 @@ static const DNSName cZones("zones");
 static const DNSName cVersion("version");
 
 // TODO: cleanup files if not in catalogzones?
-// TODO: notify to catzone (works but for #14506)
 
 void CatalogZone::add(const DNSRecord& record, Logr::log_t logger)
 {
index d465fd0bc195d05cdb57c5ff6d15d6875c3756b2..3fe87af6daa4664301719693a4b82e25377a6dc3 100644 (file)
@@ -310,7 +310,8 @@ void pdns::settings::rec::processAPIDir(const string& includeDirOnCommandLine, p
   possiblyConvertForwardsandAuths(includeDir, apiDir, log);
 }
 
-static void addToAllowNotifyFor(Recursorsettings& settings, const rust::Vec<::pdns::rust::settings::rec::ForwardZone>& vec)
+template<typename T>
+static void addToAllowNotifyFor(Recursorsettings& settings, const rust::Vec<T>& vec)
 {
   for (const auto& item : vec) {
     if (item.notify_allowed) {
@@ -342,6 +343,7 @@ pdns::settings::rec::YamlSettingsStatus pdns::settings::rec::readYamlSettings(co
     // run --config, while they aren't actually there in any config file.
     addToAllowNotifyFor(yamlstruct, yamlstruct.recursor.forward_zones);
     addToAllowNotifyFor(yamlstruct, yamlstruct.recursor.forward_zones_recurse);
+    addToAllowNotifyFor(yamlstruct, yamlstruct.recursor.forwarding_catalog_zones);
     yamlstruct.validate();
     settings = std::move(yamlstruct);
     return YamlSettingsStatus::OK;
@@ -1317,7 +1319,7 @@ void fromRustToLuaConfig(const rust::Vec<pdns::rust::settings::rec::ForwardingCa
       ComboAddress combo = ComboAddress(std::string(address), 53);
       fwcatz.d_params.primaries.emplace_back(combo.toStringWithPort());
     }
-    fwcatz.d_params.name = std::string(catz.name);
+    fwcatz.d_params.name = std::string(catz.zone);
     fwcatz.d_params.zoneSizeHint = catz.xfr.zoneSizeHint;
     assign(fwcatz.d_params.tsigtriplet, catz.xfr.tsig);
     fwcatz.d_params.refreshFromConf = catz.xfr.refresh;
index 2fd4f746221215aa96b41d94e24732166c85f9dd..4b42ad61524324af0a64b99e8446867f359ab7a4 100644 (file)
@@ -294,7 +294,7 @@ pub struct FCZDefault {
 #[serde(deny_unknown_fields)]
 pub struct ForwardingCatalogZone {
     #[serde(default, skip_serializing_if = "crate::is_default")]
-    name: String,
+    zone: String,
     #[serde(default, skip_serializing_if = "crate::is_default")]
     notify_allowed: bool,
     #[serde(default, skip_serializing_if = "crate::is_default")]
index d39d787696c3cd8eb03b49bf86da3fe5f7344a5f..3a846430790b083472e6f2429e73703815bf7f1a 100644 (file)
@@ -664,7 +664,7 @@ impl ForwardingCatalogZone {
         // XXX INCOMPLETE
         let seq = serde_yaml::Sequence::new();
         let mut map = serde_yaml::Mapping::new();
-        inserts(&mut map, "name", &self.name);
+        inserts(&mut map, "zone", &self.zone);
         insertb(&mut map, "notify_allowed", self.notify_allowed);
         insertseq(&mut map, "groups", &seq);
         serde_yaml::Value::Mapping(map)
index ac103d977b472e90b6d07ea586763b35bfa49685..b617d90748d8910afb4327090142cd530c964788 100644 (file)
@@ -890,7 +890,7 @@ BOOST_AUTO_TEST_CASE(test_yaml_forwardingcatalogzones)
 {
   const std::string yaml = R"EOT(recursor:
   forwarding_catalog_zones:
-  - name: 'forward.invalid'
+  - zone: 'forward.invalid'
     xfr:
       addresses: [192.168.178.3:53]
     groups:
@@ -903,7 +903,7 @@ BOOST_AUTO_TEST_CASE(test_yaml_forwardingcatalogzones)
 
   auto settings = pdns::rust::settings::rec::parse_yaml_string(yaml);
   settings.validate();
-  BOOST_CHECK_EQUAL(std::string(settings.recursor.forwarding_catalog_zones[0].name), "forward.invalid");
+  BOOST_CHECK_EQUAL(std::string(settings.recursor.forwarding_catalog_zones[0].zone), "forward.invalid");
   BOOST_CHECK_EQUAL(std::string(settings.recursor.forwarding_catalog_zones[0].xfr.addresses[0]), "192.168.178.3:53");
   BOOST_CHECK_EQUAL(settings.recursor.forwarding_catalog_zones[0].groups[0].forwarders.size(), 1U);
   BOOST_CHECK_EQUAL(std::string(settings.recursor.forwarding_catalog_zones[0].groups[0].forwarders[0]), "1.2.3.4");