]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: catalog, include groups in hash calculation
authorKees Monshouwer <mind04@monshouwer.org>
Sat, 2 Sep 2023 13:21:53 +0000 (15:21 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 7 Mar 2024 13:28:11 +0000 (14:28 +0100)
pdns/auth-catalogzone.cc

index b8d825dd5de53c0a7ef596c29703a11fdedfc9df..2fd7369283fec99e1170ec6f4d55997475049fe5 100644 (file)
@@ -94,7 +94,7 @@ std::string CatalogInfo::toJson() const
   }
   if (!d_group.empty()) {
     json11::Json::array entries;
-    for (const string& group : d_group) {
+    for (const auto& group : d_group) {
       entries.push_back(group);
     }
     object["group"] = entries;
@@ -107,7 +107,10 @@ std::string CatalogInfo::toJson() const
 
 void CatalogInfo::updateHash(CatalogHashMap& hashes, const DomainInfo& di) const
 {
-  hashes[di.catalog].process(static_cast<char>(di.id) + di.zone.toLogString() + "\0" + d_coo.toLogString() + "\0" + d_unique.toLogString());
+  hashes[di.catalog].process(std::to_string(di.id) + di.zone.toLogString() + "\0" + d_coo.toLogString() + "\0" + d_unique.toLogString());
+  for (const auto& group : d_group) {
+    hashes[di.catalog].process(std::to_string(group.length()) + group);
+  }
 }
 
 DNSZoneRecord CatalogInfo::getCatalogVersionRecord(const DNSName& zone)