From: Mark Andrews Date: Wed, 12 May 2004 04:48:23 +0000 (+0000) Subject: 1632. [bug] nsupdate failed to send prerequisite only UPDATE X-Git-Tag: v9.2.3rc4^3~22 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=5efa612be0471cc4e133b795db3dd3addf18ba6c;p=thirdparty%2Fbind9.git 1632. [bug] nsupdate failed to send prerequisite only UPDATE messages. [RT #11288] --- diff --git a/CHANGES b/CHANGES index 674f7097c47..0b2eeff51ce 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ 1633. [placeholder] rt11331 -1632. [placeholder] rt11288 +1632. [bug] nsupdate failed to send prerequisite only UPDATE + messages. [RT #11288] 1631. [bug] dns_journal_compact() could sometimes corrupt the journal. [RT #11124] diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c index 46d36097a51..53777b8dfb5 100644 --- a/bin/nsupdate/nsupdate.c +++ b/bin/nsupdate/nsupdate.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: nsupdate.c,v 1.131 2004/04/10 04:03:16 marka Exp $ */ +/* $Id: nsupdate.c,v 1.132 2004/05/12 04:48:23 marka Exp $ */ #include @@ -1847,12 +1847,17 @@ start_update(void) { dns_request_t *request = NULL; dns_message_t *soaquery = NULL; dns_name_t *firstname; + dns_section_t section = DNS_SECTION_UPDATE; ddebug("start_update()"); if (answer != NULL) dns_message_destroy(&answer); - result = dns_message_firstname(updatemsg, DNS_SECTION_UPDATE); + result = dns_message_firstname(updatemsg, section); + if (result == ISC_R_NOMORE) { + section = DNS_SECTION_PREREQUISITE; + result = dns_message_firstname(updatemsg, section); + } if (result != ISC_R_SUCCESS) { done_update(); return; @@ -1879,7 +1884,7 @@ start_update(void) { dns_rdataset_makequestion(rdataset, getzoneclass(), dns_rdatatype_soa); firstname = NULL; - dns_message_currentname(updatemsg, DNS_SECTION_UPDATE, &firstname); + dns_message_currentname(updatemsg, section, &firstname); dns_name_init(name, NULL); dns_name_clone(firstname, name);