2950. [bug] named failed to perform a SOA up to date check when

falling back to TCP on UDP timeouts when
                        ixfr-from-differences was set. [RT #21595]
This commit is contained in:
Mark Andrews 2010-09-06 04:41:13 +00:00
parent 02a211f4c4
commit e588bfe689
2 changed files with 16 additions and 5 deletions

View file

@ -1,3 +1,7 @@
2950. [bug] named failed to perform a SOA up to date check when
falling back to TCP on UDP timeouts when
ixfr-from-differences was set. [RT #21595]
2949. [bug] dns_view_setnewzones() contained a memory leak if
it was called multiple times. [RT #21942]

View file

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zone.c,v 1.573 2010/09/05 12:14:26 fdupont Exp $ */
/* $Id: zone.c,v 1.574 2010/09/06 04:41:13 marka Exp $ */
/*! \file */
@ -11915,6 +11915,7 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
isc_sockaddr_t sourceaddr;
isc_sockaddr_t masteraddr;
isc_time_t now;
const char *soa_before = "";
UNUSED(task);
@ -11942,6 +11943,8 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
isc_netaddr_fromsockaddr(&masterip, &zone->masteraddr);
(void)dns_peerlist_peerbyaddr(zone->view->peers, &masterip, &peer);
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_SOABEFOREAXFR))
soa_before = "SOA before ";
/*
* Decide whether we should request IXFR or AXFR.
*/
@ -11952,8 +11955,12 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
xfrtype = dns_rdatatype_axfr;
} else if (DNS_ZONE_OPTION(zone, DNS_ZONEOPT_IXFRFROMDIFFS)) {
dns_zone_log(zone, ISC_LOG_DEBUG(1), "ixfr-from-differences "
"set, requesting AXFR from %s", master);
xfrtype = dns_rdatatype_axfr;
"set, requesting %sAXFR from %s", soa_before,
master);
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_SOABEFOREAXFR))
xfrtype = dns_rdatatype_soa;
else
xfrtype = dns_rdatatype_axfr;
} else if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_FORCEXFER)) {
dns_zone_log(zone, ISC_LOG_DEBUG(1),
"forced reload, requesting AXFR of "
@ -11978,8 +11985,8 @@ got_transfer_quota(isc_task_t *task, isc_event_t *event) {
}
if (use_ixfr == ISC_FALSE) {
dns_zone_log(zone, ISC_LOG_DEBUG(1),
"IXFR disabled, requesting AXFR from %s",
master);
"IXFR disabled, requesting %sAXFR from %s",
soa_before, master);
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_SOABEFOREAXFR))
xfrtype = dns_rdatatype_soa;
else