From 9524c493c9534654adb5c363972adcc521c1907b Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 23 Sep 2022 16:52:44 +1000 Subject: [PATCH] Check that primary key names have not changed When looking for changes in a catalog zone member zone we need to also check if the TSIG key name associated with a primary server has be added, removed or changed. Conflict: NA Reference: https://gitlab.isc.org/isc-projects/bind9/-/commit/9524c493c9534654adb5c363972adcc521c1907b (cherry picked from commit 9172bd9b5a0b039cea187b6c7cc2c1314210c5d6) --- lib/dns/catz.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/dns/catz.c b/lib/dns/catz.c index e46549be5e..702b081940 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -322,6 +322,20 @@ dns_catz_entry_cmp(const dns_catz_entry_t *ea, const dns_catz_entry_t *eb) { return (false); } + for (size_t i = 0; i < eb->opts.masters.count; i++) { + if ((ea->opts.masters.keys[i] == NULL) != + (eb->opts.masters.keys[i] == NULL)) { + return (false); + } + if (ea->opts.masters.keys[i] == NULL) { + continue; + } + if (!dns_name_equal(ea->opts.masters.keys[i], + eb->opts.masters.keys[i])) { + return (false); + } + } + /* If one is NULL and the other isn't, the entries don't match */ if ((ea->opts.allow_query == NULL) != (eb->opts.allow_query == NULL)) { return (false); @@ -350,7 +364,7 @@ dns_catz_entry_cmp(const dns_catz_entry_t *ea, const dns_catz_entry_t *eb) { } } - /* xxxwpk TODO compare dscps/keys! */ + /* xxxwpk TODO compare dscps! */ return (true); } -- 2.23.0