From 3e42bdfdc901b6b921b02028bd51ca2af8e84adc Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 9 Nov 2001 04:21:58 +0000 Subject: [PATCH] 1116. [bug] Setting transfers in a server clause, transfers-in, or transfers-per-ns to a value greater than 2147483647 disabled transfers. [RT #2002] --- CHANGES | 4 ++++ lib/dns/include/dns/peer.h | 8 ++++---- lib/dns/include/dns/zone.h | 10 +++++----- lib/dns/peer.c | 6 +++--- lib/dns/zone.c | 18 +++++++++--------- 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/CHANGES b/CHANGES index c37b222b11..cc2e3474da 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +1116. [bug] Setting transfers in a server clause, transfers-in, + or transfers-per-ns to a value greater than + 2147483647 disabled transfers. [RT #2002] + 1115. [func] Set maximum values for cleaning-interval, heartbeat-interval, interface-interval, max-transfer-idle-in, max-transfer-idle-out, diff --git a/lib/dns/include/dns/peer.h b/lib/dns/include/dns/peer.h index 8629a99da2..ef13dab422 100644 --- a/lib/dns/include/dns/peer.h +++ b/lib/dns/include/dns/peer.h @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: peer.h,v 1.16 2001/08/28 03:58:20 marka Exp $ */ +/* $Id: peer.h,v 1.17 2001/11/09 04:21:58 marka Exp $ */ #ifndef DNS_PEER_H #define DNS_PEER_H 1 @@ -66,7 +66,7 @@ struct dns_peer { isc_netaddr_t address; isc_boolean_t bogus; dns_transfer_format_t transfer_format; - int transfers; + isc_uint32_t transfers; isc_boolean_t support_ixfr; isc_boolean_t provide_ixfr; isc_boolean_t request_ixfr; @@ -145,10 +145,10 @@ isc_result_t dns_peer_getsupportedns(dns_peer_t *peer, isc_boolean_t *retval); isc_result_t -dns_peer_settransfers(dns_peer_t *peer, isc_int32_t newval); +dns_peer_settransfers(dns_peer_t *peer, isc_uint32_t newval); isc_result_t -dns_peer_gettransfers(dns_peer_t *peer, isc_int32_t *retval); +dns_peer_gettransfers(dns_peer_t *peer, isc_uint32_t *retval); isc_result_t dns_peer_settransferformat(dns_peer_t *peer, dns_transfer_format_t newval); diff --git a/lib/dns/include/dns/zone.h b/lib/dns/include/dns/zone.h index 8e42c0e16f..75db4cd76f 100644 --- a/lib/dns/include/dns/zone.h +++ b/lib/dns/include/dns/zone.h @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: zone.h,v 1.107 2001/09/08 00:21:39 gson Exp $ */ +/* $Id: zone.h,v 1.108 2001/11/09 04:21:57 marka Exp $ */ #ifndef DNS_ZONE_H #define DNS_ZONE_H 1 @@ -1177,7 +1177,7 @@ dns_zonemgr_releasezone(dns_zonemgr_t *zmgr, dns_zone_t *zone); */ void -dns_zonemgr_settransfersin(dns_zonemgr_t *zmgr, int value); +dns_zonemgr_settransfersin(dns_zonemgr_t *zmgr, isc_uint32_t value); /* * Set the maximum number of simultanious transfers in allowed by * the zone manager. @@ -1186,7 +1186,7 @@ dns_zonemgr_settransfersin(dns_zonemgr_t *zmgr, int value); * 'zmgr' to be a valid zone manager. */ -int +isc_uint32_t dns_zonemgr_getttransfersin(dns_zonemgr_t *zmgr); /* * Return the the maximum number of simultanious transfers in allowed. @@ -1196,7 +1196,7 @@ dns_zonemgr_getttransfersin(dns_zonemgr_t *zmgr); */ void -dns_zonemgr_settransfersperns(dns_zonemgr_t *zmgr, int value); +dns_zonemgr_settransfersperns(dns_zonemgr_t *zmgr, isc_uint32_t value); /* * Set the number of zone transfers allowed per nameserver. * @@ -1204,7 +1204,7 @@ dns_zonemgr_settransfersperns(dns_zonemgr_t *zmgr, int value); * 'zmgr' to be a valid zone manager */ -int +isc_uint32_t dns_zonemgr_getttransfersperns(dns_zonemgr_t *zmgr); /* * Return the number of transfers allowed per nameserver. diff --git a/lib/dns/peer.c b/lib/dns/peer.c index f546eb52b1..8299e21ec7 100644 --- a/lib/dns/peer.c +++ b/lib/dns/peer.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: peer.c,v 1.14 2001/03/06 23:54:33 bwelling Exp $ */ +/* $Id: peer.c,v 1.15 2001/11/09 04:21:55 marka Exp $ */ #include @@ -386,7 +386,7 @@ dns_peer_getsupportedns(dns_peer_t *peer, isc_boolean_t *retval) { } isc_result_t -dns_peer_settransfers(dns_peer_t *peer, isc_int32_t newval) { +dns_peer_settransfers(dns_peer_t *peer, isc_uint32_t newval) { isc_boolean_t existed; REQUIRE(DNS_PEER_VALID(peer)); @@ -400,7 +400,7 @@ dns_peer_settransfers(dns_peer_t *peer, isc_int32_t newval) { } isc_result_t -dns_peer_gettransfers(dns_peer_t *peer, isc_int32_t *retval) { +dns_peer_gettransfers(dns_peer_t *peer, isc_uint32_t *retval) { REQUIRE(DNS_PEER_VALID(peer)); REQUIRE(retval != NULL); diff --git a/lib/dns/zone.c b/lib/dns/zone.c index acb8a228c6..c84dae1e18 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: zone.c,v 1.350 2001/10/23 01:49:33 gson Exp $ */ +/* $Id: zone.c,v 1.351 2001/11/09 04:21:54 marka Exp $ */ #include @@ -279,8 +279,8 @@ struct dns_zonemgr { dns_zonelist_t xfrin_in_progress; /* Configuration data. */ - int transfersin; - int transfersperns; + isc_uint32_t transfersin; + isc_uint32_t transfersperns; unsigned int serialqueryrate; /* Locked by iolock */ @@ -5668,13 +5668,13 @@ zonemgr_free(dns_zonemgr_t *zmgr) { } void -dns_zonemgr_settransfersin(dns_zonemgr_t *zmgr, int value) { +dns_zonemgr_settransfersin(dns_zonemgr_t *zmgr, isc_uint32_t value) { REQUIRE(DNS_ZONEMGR_VALID(zmgr)); zmgr->transfersin = value; } -int +isc_uint32_t dns_zonemgr_getttransfersin(dns_zonemgr_t *zmgr) { REQUIRE(DNS_ZONEMGR_VALID(zmgr)); @@ -5682,13 +5682,13 @@ dns_zonemgr_getttransfersin(dns_zonemgr_t *zmgr) { } void -dns_zonemgr_settransfersperns(dns_zonemgr_t *zmgr, int value) { +dns_zonemgr_settransfersperns(dns_zonemgr_t *zmgr, isc_uint32_t value) { REQUIRE(DNS_ZONEMGR_VALID(zmgr)); zmgr->transfersperns = value; } -int +isc_uint32_t dns_zonemgr_getttransfersperns(dns_zonemgr_t *zmgr) { REQUIRE(DNS_ZONEMGR_VALID(zmgr)); @@ -5751,9 +5751,9 @@ static isc_result_t zmgr_start_xfrin_ifquota(dns_zonemgr_t *zmgr, dns_zone_t *zone) { dns_peer_t *peer = NULL; isc_netaddr_t masterip; - int nxfrsin, nxfrsperns; + isc_uint32_t nxfrsin, nxfrsperns; dns_zone_t *x; - int maxtransfersin, maxtransfersperns; + isc_uint32_t maxtransfersin, maxtransfersperns; isc_event_t *e; /*