+3283. [bug] Raw zones with with more than 512 records in a RRset
+ failed to load. [RT #27863]
+
3282. [bug] Restrict the TTL of NS RRset to no more than that
of the old NS RRset when replacing it. [RT #27792]
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: clean.sh,v 1.5 2007/09/26 03:22:44 marka Exp $
+# $Id: clean.sh,v 1.5.476.1 2012/02/14 00:14:27 marka Exp $
rm -f named-compilezone
rm -f ns1/example.db.raw
-rm -f ns2/example.db
+rm -f ns1/large.db ns1/large.db.raw
rm -f dig.out.*
+rm -f dig.out
rm -f */named.memstats
+rm -f ns2/example.db
+rm -f ns2/large.bk
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: compile.sh,v 1.6 2007/06/19 23:47:04 tbox Exp $
+# $Id: compile.sh,v 1.6.558.1 2012/02/14 00:14:27 marka Exp $
../named-compilezone -D -F raw -o example.db.raw example example.db
+../named-compilezone -D -F raw -o large.db.raw large large.db > /dev/null 2>&1
--- /dev/null
+; Copyright (C) 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+;
+; Permission to use, copy, modify, and/or distribute this software for any
+; purpose with or without fee is hereby granted, provided that the above
+; copyright notice and this permission notice appear in all copies.
+;
+; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+; PERFORMANCE OF THIS SOFTWARE.
+
+; $Id: large.db.in,v 1.2.6.2 2012/02/14 00:14:28 marka Exp $
+
+$TTL 1D
+
+@ IN SOA ns hostmaster (
+ 1
+ 3600
+ 1800
+ 1814400
+ 3
+ )
+ NS ns
+ns A 10.53.0.1
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.4 2007/06/19 23:47:04 tbox Exp $ */
+/* $Id: named.conf,v 1.4.558.1 2012/02/14 00:14:28 marka Exp $ */
// NS1
masterfile-format raw;
file "example.db.raw";
};
+
+zone "large" {
+ type master;
+ file "large.db.raw";
+ masterfile-format raw;
+ allow-transfer { any; };
+};
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.4 2007/06/19 23:47:04 tbox Exp $ */
+/* $Id: named.conf,v 1.4.558.1 2012/02/14 00:14:28 marka Exp $ */
// NS2
type master;
file "example.db";
};
+
+zone "large" {
+ type slave;
+ masters { 10.53.0.1; };
+ masterfile-format raw;
+ file "large.bk";
+};
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: tests.sh,v 1.4 2007/06/19 23:47:04 tbox Exp $
+# $Id: tests.sh,v 1.4.558.1 2012/02/14 00:14:27 marka Exp $
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: tests.sh,v 1.4 2007/06/19 23:47:04 tbox Exp $
+# $Id: tests.sh,v 1.4.558.1 2012/02/14 00:14:27 marka Exp $
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
diff dig.out.1 dig.out.2 || status=1
+echo "I:checking that large rdatasets loaded"
+ret=0
+for a in a b c
+do
+ $DIG +tcp txt ${a}.large @10.53.0.2 -p 5300 > dig.out
+ grep "status: NOERROR" dig.out > /dev/null || ret=1
+done
+[ $ret -eq 0 ] || echo "I:failed"
+status=`expr $status + $ret`
+
echo "I:exit status: $status"
exit $status
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: master.c,v 1.178.104.2 2011/03/12 04:58:27 tbox Exp $ */
+/* $Id: master.c,v 1.178.104.3 2012/02/14 00:14:28 marka Exp $ */
/*! \file */
if (rdcount > rdata_size) {
dns_rdata_t *new_rdata = NULL;
- new_rdata = grow_rdata(rdata_size + RDSZ, rdata,
+ new_rdata = grow_rdata(rdcount + RDSZ, rdata,
rdata_size, &head,
&dummy, mctx);
if (new_rdata == NULL) {
result = ISC_R_NOMEMORY;
goto cleanup;
}
- rdata_size += RDSZ;
+ rdata_size = rdcount + RDSZ;
rdata = new_rdata;
}
}
while ((this = ISC_LIST_HEAD(save)) != NULL) {
ISC_LIST_UNLINK(save, this, link);
+ INSIST(rdlcount < new_len);
new[rdlcount] = *this;
ISC_LIST_APPEND(*current, &new[rdlcount], link);
rdlcount++;
}
while ((this = ISC_LIST_HEAD(save)) != NULL) {
ISC_LIST_UNLINK(save, this, link);
+ INSIST(rdlcount < new_len);
new[rdlcount] = *this;
ISC_LIST_APPEND(*glue, &new[rdlcount], link);
rdlcount++;
}
while ((rdata = ISC_LIST_HEAD(save)) != NULL) {
ISC_LIST_UNLINK(save, rdata, link);
+ INSIST(rdcount < new_len);
new[rdcount] = *rdata;
ISC_LIST_APPEND(this->rdata, &new[rdcount], link);
rdcount++;
}
while ((rdata = ISC_LIST_HEAD(save)) != NULL) {
ISC_LIST_UNLINK(save, rdata, link);
+ INSIST(rdcount < new_len);
new[rdcount] = *rdata;
ISC_LIST_APPEND(this->rdata, &new[rdcount], link);
rdcount++;
}
this = ISC_LIST_NEXT(this, link);
}
- INSIST(rdcount == old_len);
+ INSIST(rdcount == old_len || rdcount == 0);
if (old != NULL)
isc_mem_put(mctx, old, old_len * sizeof(*old));
return (new);