mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 06:55:30 +00:00
2862. [bug] nsupdate didn't default to the parent zone when
updating DS records. [RT #20896]
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
2862. [bug] nsupdate didn't default to the parent zone when
|
||||||
|
updating DS records. [RT #20896]
|
||||||
|
|
||||||
2861. [doc] dnssec-settime man pages didn't correctly document the
|
2861. [doc] dnssec-settime man pages didn't correctly document the
|
||||||
inactivation time. [RT #21039]
|
inactivation time. [RT #21039]
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: nsupdate.c,v 1.175 2010/03/04 23:50:34 tbox Exp $ */
|
/* $Id: nsupdate.c,v 1.176 2010/03/09 03:46:12 marka Exp $ */
|
||||||
|
|
||||||
/*! \file */
|
/*! \file */
|
||||||
|
|
||||||
@@ -2694,6 +2694,7 @@ start_update(void) {
|
|||||||
dns_name_init(name, NULL);
|
dns_name_init(name, NULL);
|
||||||
dns_name_clone(userzone, name);
|
dns_name_clone(userzone, name);
|
||||||
} else {
|
} else {
|
||||||
|
dns_rdataset_t *rdataset;
|
||||||
result = dns_message_firstname(updatemsg, section);
|
result = dns_message_firstname(updatemsg, section);
|
||||||
if (result == ISC_R_NOMORE) {
|
if (result == ISC_R_NOMORE) {
|
||||||
section = DNS_SECTION_PREREQUISITE;
|
section = DNS_SECTION_PREREQUISITE;
|
||||||
@@ -2711,6 +2712,19 @@ start_update(void) {
|
|||||||
dns_message_currentname(updatemsg, section, &firstname);
|
dns_message_currentname(updatemsg, section, &firstname);
|
||||||
dns_name_init(name, NULL);
|
dns_name_init(name, NULL);
|
||||||
dns_name_clone(firstname, name);
|
dns_name_clone(firstname, name);
|
||||||
|
/*
|
||||||
|
* Looks to see if the first name references a DS record
|
||||||
|
* and if that name is not the root remove a label as DS
|
||||||
|
* records live in the parent zone so we need to start our
|
||||||
|
* search one label up.
|
||||||
|
*/
|
||||||
|
rdataset = ISC_LIST_HEAD(firstname->list);
|
||||||
|
if (section == DNS_SECTION_UPDATE &&
|
||||||
|
!dns_name_equal(firstname, dns_rootname) &&
|
||||||
|
rdataset->type == dns_rdatatype_ds) {
|
||||||
|
unsigned int labels = dns_name_countlabels(name);
|
||||||
|
dns_name_getlabelsequence(name, 1, labels - 1, name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ISC_LIST_INIT(name->list);
|
ISC_LIST_INIT(name->list);
|
||||||
|
Reference in New Issue
Block a user