Commit 7829fad4 authored by Curtis Blackburn's avatar Curtis Blackburn

merging fast format zone files

Conflicts:
	.gitignore
	bin/named/zoneconf.c
	bin/tests/.gitignore
	bin/tests/system/autosign/tests.sh
	bin/tests/system/masterformat/clean.sh
	bin/tests/system/masterformat/ns1/compile.sh
	bin/tests/system/masterformat/tests.sh
	configure
	lib/dns/db.c
	lib/dns/include/dns/db.h
	lib/dns/include/dns/types.h
	lib/dns/master.c
	lib/dns/masterdump.c
	lib/dns/rbt.c
	lib/dns/rbtdb.c
	lib/dns/sdb.c
	lib/dns/sdlz.c
	lib/dns/tests/.cvsignore
	lib/dns/tests/Makefile.in
	lib/dns/win32/libdns.def
	lib/dns/xfrin.c
	lib/dns/zone.c
	lib/export/dns/Makefile.in
	lib/isc/include/isc/file.h
	lib/isc/unix/file.c
	lib/isc/win32/file.c
	lib/isccfg/namedconf.c
parent c04f7a30
......@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: named-checkzone.c,v 1.65 2011/12/22 17:29:22 each Exp $ */
/* $Id: named-checkzone.c,v 1.65.32.2 2012/02/07 02:45:21 each Exp $ */
/*! \file */
......@@ -120,6 +120,11 @@ main(int argc, char **argv) {
FILE *errout = stdout;
char *endp;
/*
* Uncomment the following line if memory debugging is needed:
* isc_mem_debugging |= ISC_MEM_DEBUGRECORD;
*/
outputstyle = &dns_master_style_full;
prog_name = strrchr(argv[0], '/');
......@@ -418,6 +423,8 @@ main(int argc, char **argv) {
inputformat = dns_masterformat_raw;
fprintf(stderr,
"WARNING: input format raw, version ignored\n");
} else if (strcasecmp(inputformatstr, "fast") == 0) {
inputformat = dns_masterformat_fast;
} else {
fprintf(stderr, "unknown file format: %s\n",
inputformatstr);
......@@ -441,6 +448,8 @@ main(int argc, char **argv) {
"unknown raw format version\n");
exit(1);
}
} else if (strcasecmp(outputformatstr, "fast") == 0) {
outputformat = dns_masterformat_fast;
} else {
fprintf(stderr, "unknown file format: %s\n",
outputformatstr);
......
......@@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssec-dsfromkey.c,v 1.24 2011/10/25 01:54:18 marka Exp $ */
/* $Id: dnssec-dsfromkey.c,v 1.24.114.1 2012/02/07 00:44:12 each Exp $ */
/*! \file */
......@@ -84,7 +84,7 @@ db_load_from_stream(dns_db_t *db, FILE *fp) {
dns_rdatacallbacks_t callbacks;
dns_rdatacallbacks_init(&callbacks);
result = dns_db_beginload(db, &callbacks.add, &callbacks.add_private);
result = dns_db_beginload(db, &callbacks);
if (result != ISC_R_SUCCESS)
fatal("dns_db_beginload failed: %s", isc_result_totext(result));
......@@ -93,7 +93,7 @@ db_load_from_stream(dns_db_t *db, FILE *fp) {
if (result != ISC_R_SUCCESS)
fatal("can't load from input: %s", isc_result_totext(result));
result = dns_db_endload(db, &callbacks.add_private);
result = dns_db_endload(db, &callbacks);
if (result != ISC_R_SUCCESS)
fatal("dns_db_endload failed: %s", isc_result_totext(result));
}
......
......@@ -29,7 +29,7 @@
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: dnssec-signzone.c,v 1.285 2011/12/22 07:32:39 each Exp $ */
/* $Id: dnssec-signzone.c,v 1.285.32.1 2012/02/07 00:44:12 each Exp $ */
/*! \file */
......@@ -3819,6 +3819,8 @@ main(int argc, char *argv[]) {
if (inputformatstr != NULL) {
if (strcasecmp(inputformatstr, "text") == 0)
inputformat = dns_masterformat_text;
else if (strcasecmp(inputformatstr, "fast") == 0)
inputformat = dns_masterformat_fast;
else if (strcasecmp(inputformatstr, "raw") == 0)
inputformat = dns_masterformat_raw;
else if (strncasecmp(inputformatstr, "raw=", 4) == 0) {
......@@ -3836,6 +3838,8 @@ main(int argc, char *argv[]) {
} else if (strcasecmp(outputformatstr, "full") == 0) {
outputformat = dns_masterformat_text;
masterstyle = &dns_master_style_full;
} else if (strcasecmp(outputformatstr, "fast") == 0) {
outputformat = dns_masterformat_fast;
} else if (strcasecmp(outputformatstr, "raw") == 0) {
outputformat = dns_masterformat_raw;
} else if (strncasecmp(outputformatstr, "raw=", 4) == 0) {
......
......@@ -793,10 +793,12 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
dns_rdataclass_t zclass;
dns_rdataclass_t vclass;
const cfg_obj_t *maps[5];
const cfg_obj_t *nodefault[4];
const cfg_obj_t *zoptions = NULL;
const cfg_obj_t *options = NULL;
const cfg_obj_t *obj;
const char *filename = NULL;
const char *dupcheck;
dns_notifytype_t notifytype = dns_notifytype_yes;
isc_sockaddr_t *addrs;
dns_name_t **keynames;
......@@ -825,15 +827,21 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
i = 0;
if (zconfig != NULL) {
zoptions = cfg_tuple_get(zconfig, "options");
maps[i++] = zoptions;
nodefault[i] = maps[i] = zoptions;
i++;
}
if (vconfig != NULL) {
nodefault[i] = maps[i] = cfg_tuple_get(vconfig, "options");
i++;
}
if (vconfig != NULL)
maps[i++] = cfg_tuple_get(vconfig, "options");
if (config != NULL) {
(void)cfg_map_get(config, "options", &options);
if (options != NULL)
maps[i++] = options;
if (options != NULL) {
nodefault[i] = maps[i] = options;
i++;
}
}
nodefault[i] = NULL;
maps[i++] = ns_g_defaults;
maps[i] = NULL;
......@@ -922,6 +930,8 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
masterformat = dns_masterformat_text;
else if (strcasecmp(masterformatstr, "raw") == 0)
masterformat = dns_masterformat_raw;
else if (strcasecmp(masterformatstr, "fast") == 0)
masterformat = dns_masterformat_fast;
else
INSIST(0);
}
......@@ -1346,15 +1356,31 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
check = ISC_FALSE;
dns_zone_setoption(mayberaw, DNS_ZONEOPT_CHECKWILDCARD, check);
/*
* With fast files, the default is ignore duplicate
* records. With other master formats, the default is
* taken from the global configuration.
*/
obj = NULL;
result = ns_config_get(maps, "check-dup-records", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
if (strcasecmp(cfg_obj_asstring(obj), "warn") == 0) {
if (masterformat != dns_masterformat_fast) {
result = ns_config_get(maps, "check-dup-records", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
dupcheck = cfg_obj_asstring(obj);
} else {
result = ns_config_get(nodefault, "check-dup-records",
&obj);
if (result == ISC_R_SUCCESS)
dupcheck = cfg_obj_asstring(obj);
else
dupcheck = "ignore";
}
if (strcasecmp(dupcheck, "warn") == 0) {
fail = ISC_FALSE;
check = ISC_TRUE;
} else if (strcasecmp(cfg_obj_asstring(obj), "fail") == 0) {
} else if (strcasecmp(dupcheck, "fail") == 0) {
fail = check = ISC_TRUE;
} else if (strcasecmp(cfg_obj_asstring(obj), "ignore") == 0) {
} else if (strcasecmp(dupcheck, "ignore") == 0) {
fail = check = ISC_FALSE;
} else
INSIST(0);
......@@ -1376,11 +1402,26 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
dns_zone_setoption(mayberaw, DNS_ZONEOPT_CHECKMX, check);
dns_zone_setoption(mayberaw, DNS_ZONEOPT_CHECKMXFAIL, fail);
/*
* With fast files, the default is *not* to check
* integrity. With other master formats, the default is
* taken from the global configuration.
*/
obj = NULL;
result = ns_config_get(maps, "check-integrity", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
dns_zone_setoption(mayberaw, DNS_ZONEOPT_CHECKINTEGRITY,
cfg_obj_asboolean(obj));
if (masterformat != dns_masterformat_fast) {
result = ns_config_get(maps, "check-integrity", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
dns_zone_setoption(mayberaw, DNS_ZONEOPT_CHECKINTEGRITY,
cfg_obj_asboolean(obj));
} else {
isc_boolean_t check = ISC_FALSE;
result = ns_config_get(nodefault, "check-integrity",
&obj);
if (result == ISC_R_SUCCESS)
check = cfg_obj_asboolean(obj);
dns_zone_setoption(mayberaw, DNS_ZONEOPT_CHECKINTEGRITY,
check);
}
obj = NULL;
result = ns_config_get(maps, "check-mx-cname", &obj);
......
......@@ -18,8 +18,12 @@ t_rbt
t_resolver
t_sockaddr
conf.sh
prereq.sh
dlopen
named.conf
filter-aaaa
lwtest
rpz
keycreate
keydelete
gssapi_krb
......
......@@ -14,7 +14,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: tests.sh,v 1.46 2012/02/07 00:33:19 each Exp $
# $Id$
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
......@@ -168,11 +168,16 @@ echo "I:resetting nsec3param via rndc signing ($n)"
ret=0
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -clear all autonsec3.example. > /dev/null 2>&1
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -nsec3param 1 1 10 beef autonsec3.example. > /dev/null 2>&1
sleep 1
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -list autonsec3.example. > signing.out.test$n 2>&1
grep "Pending NSEC3 chain 1 1 10 BEEF" signing.out.test$n > /dev/null || ret=1
num=`grep "Pending " signing.out.test$n | wc -l`
[ $num -eq 1 ] || ret=1
for i in 0 1 2 3 4 5 6 7 8 9; do
ret=0
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -list autonsec3.example. > signing.out.test$n 2>&1
grep "Pending NSEC3 chain 1 1 10 BEEF" signing.out.test$n > /dev/null || ret=1
num=`grep "Pending " signing.out.test$n | wc -l`
[ $num -eq 1 ] || ret=1
[ $ret -eq 0 ] && break
echo "I:waiting ... ($i)"
sleep 2
done
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
......@@ -809,15 +814,21 @@ if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
echo "I:checking secure-to-insecure transition, nsupdate ($n)"
ret=0
$NSUPDATE > /dev/null 2>&1 <<END || status=1
server 10.53.0.3 5300
zone secure-to-insecure.example
update delete secure-to-insecure.example dnskey
send
END
sleep 2
$DIG $DIGOPTS axfr secure-to-insecure.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
egrep '(RRSIG|DNSKEY|NSEC)' dig.out.ns3.test$n > /dev/null && ret=1
for i in 0 1 2 3 4 5 6 7 8 9; do
ret=0
$DIG $DIGOPTS axfr secure-to-insecure.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
egrep '(RRSIG|DNSKEY|NSEC)' dig.out.ns3.test$n > /dev/null && ret=1
[ $ret -eq 0 ] && break
echo "I:waiting ... ($i)"
sleep 2
done
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
......@@ -829,9 +840,14 @@ $SETTIME -I now -D now $file > /dev/null
file="ns3/`cat del2.key`.key"
$SETTIME -I now -D now $file > /dev/null
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 sign secure-to-insecure2.example. 2>&1 | sed 's/^/I:ns3 /'
sleep 2
$DIG $DIGOPTS axfr secure-to-insecure2.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
egrep '(RRSIG|DNSKEY|NSEC3)' dig.out.ns3.test$n > /dev/null && ret=1
for i in 0 1 2 3 4 5 6 7 8 9; do
ret=0
$DIG $DIGOPTS axfr secure-to-insecure2.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
egrep '(RRSIG|DNSKEY|NSEC3)' dig.out.ns3.test$n > /dev/null && ret=1
[ $ret -eq 0 ] && break
echo "I:waiting ... ($i)"
sleep 2
done
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
......@@ -1131,7 +1147,8 @@ for i in 0 1 2 3 4 5 6 7 8 9; do
lret=0
rekey_calls=`grep "zone reconf.example.*next key event" ns3/named.run | wc -l`
[ "$rekey_calls" -gt 0 ] || lret=1
if [ "$lret" = 0 ]; then break; fi
if [ "$lret" -eq 0 ]; then break; fi
echo "I:waiting ... ($i)"
sleep 1
done
n=`expr $n + 1`
......
......@@ -14,13 +14,14 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: clean.sh,v 1.12 2012/02/14 23:47:15 tbox Exp $
# $Id$
rm -f named-compilezone
rm -f ns1/example.db.raw*
rm -f ns1/example.db.compat
rm -f ns1/example.db.serial.raw
rm -f ns1/large.db ns1/large.db.raw
rm -f ns1/example.db.fast
rm -f dig.out.*
rm -f dig.out
rm -f */named.memstats
......@@ -29,3 +30,6 @@ rm -f ns2/transfer.db.*
rm -f ns2/formerly-text.db
rm -f ns2/db-*
rm -f ns2/large.bk
rm -f ns3/example.db.fast ns3/dynamic.db.fast
rm -f baseline.txt text.1 text.2 raw.1 raw.2 fast.1 fast.2
......@@ -12,10 +12,14 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: compile.sh,v 1.11 2012/02/14 23:47:15 tbox Exp $
# $Id$
../named-compilezone -D -F raw -o example.db.raw example \
example.db > /dev/null 2>&1
../named-compilezone -D -F fast -o ../ns3/example.db.fast example \
example.db > /dev/null 2>&1
../named-compilezone -D -F fast -o ../ns3/dynamic.db.fast dynamic \
example.db > /dev/null 2>&1
../named-compilezone -D -F raw=1 -o example.db.raw1 example-explicit \
example.db > /dev/null 2>&1
../named-compilezone -D -F raw=0 -o example.db.compat example-compat \
......@@ -23,3 +27,6 @@
../named-compilezone -D -F raw -L 3333 -o example.db.serial.raw example \
example.db > /dev/null 2>&1
../named-compilezone -D -F raw -o large.db.raw large large.db > /dev/null 2>&1
../named-compilezone -D -F fast -o example.db.fast example-fast \
example.db > /dev/null 2>&1
/*
* Copyright (C) 2005, 2007, 2011 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: named.conf,v 1.1.4.3 2012/02/07 23:53:43 each Exp $ */
// NS3
controls { /* empty */ };
options {
pid-file "named.pid";
listen-on port 5300 { 10.53.0.3; };
port 5300;
listen-on-v6 { none; };
recursion no;
notify no;
dnssec-enable yes;
};
key rndc_key {
secret "1234abcd8765";
algorithm hmac-md5;
};
controls {
inet 10.53.0.3 port 9953 allow { any; } keys { rndc_key; };
};
zone "example" {
type master;
masterfile-format fast;
file "example.db.fast";
};
zone "dynamic" {
type master;
masterfile-format fast;
file "dynamic.db.fast";
allow-update { any; };
};
......@@ -14,11 +14,19 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: tests.sh,v 1.14 2012/02/15 00:50:59 marka Exp $
# $Id$
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
isfast () {
perl -e 'binmode STDIN;
read(STDIN, $input, 8);
($style, $version) = unpack("NN", $input);
exit 1 if ($style != 3 || $version > 1);' < $1
return $?
}
israw () {
perl -e 'binmode STDIN;
read(STDIN, $input, 8);
......@@ -32,7 +40,8 @@ rawversion () {
read(STDIN, $input, 8);
if (length($input) < 8) { print "not raw\n"; exit 0; };
($style, $version) = unpack("NN", $input);
print ($style == 2 ? "$version\n" : "not raw\n");' < $1
print ($style == 2 || $style == 3 ? "$version\n" :
"not raw or fast\n");' < $1
}
sourceserial () {
......@@ -49,20 +58,30 @@ sourceserial () {
}' < $1
}
restart () {
sleep 1
(cd ..; $PERL start.pl --noclean --restart masterformat ns3)
}
DIGOPTS="+tcp +noauth +noadd +nosea +nostat +noquest +nocomm +nocmd"
status=0
echo "I:checking that master files in raw format loaded"
ret=0
set -- 1 2 3
for zone in example example-explicit example-compat; do
for server in 1 2; do
for server in $*; do
for name in ns mx a aaaa cname dname txt rrsig nsec dnskey ds; do
$DIG $DIGOPTS $name.$zone. $name @10.53.0.$server -p 5300
echo
done > dig.out.$zone.$server
done
$PERL ../digcomp.pl dig.out.$zone.1 dig.out.$zone.2 || ret=1
if [ $zone = "example" ]; then
set -- 1 2
$PERL ../digcomp.pl dig.out.$zone.1 dig.out.$zone.3 || ret=1
fi
done
[ $ret -eq 0 ] || echo "I:failed"
status=`expr $status + $ret`
......@@ -72,9 +91,11 @@ ret=0
israw ns1/example.db.raw || ret=1
israw ns1/example.db.raw1 || ret=1
israw ns1/example.db.compat || ret=1
isfast ns1/example.db.fast || ret=1
[ "`rawversion ns1/example.db.raw`" = 1 ] || ret=1
[ "`rawversion ns1/example.db.raw1`" = 1 ] || ret=1
[ "`rawversion ns1/example.db.compat`" = 0 ] || ret=1
[ "`rawversion ns1/example.db.fast`" = 1 ] || ret=1
[ $ret -eq 0 ] || echo "I:failed"
status=`expr $status + $ret`
......@@ -128,6 +149,76 @@ done
[ $ret -eq 0 ] && break
sleep 1
done
echo "I:checking format transitions: text->raw->fast->text"
ret=0
./named-compilezone -D -f text -F text -o baseline.txt example.nil ns1/example.db > /dev/null
./named-compilezone -D -f text -F raw -o raw.1 example.nil baseline.txt > /dev/null
./named-compilezone -D -f raw -F fast -o fast.1 example.nil raw.1 > /dev/null
./named-compilezone -D -f fast -F text -o text.1 example.nil fast.1 > /dev/null
cmp -s baseline.txt text.1 || ret=0
[ $ret -eq 0 ] || echo "I:failed"
status=`expr $status + $ret`
echo "I:checking format transitions: text->fast->raw->text"
ret=0
./named-compilezone -D -f text -F fast -o fast.2 example.nil baseline.txt > /dev/null
./named-compilezone -D -f fast -F raw -o raw.2 example.nil fast.2 > /dev/null
./named-compilezone -D -f raw -F text -o text.2 example.nil raw.2 > /dev/null
cmp -s baseline.txt text.2 || ret=0
[ $ret -eq 0 ] || echo "I:failed"
status=`expr $status + $ret`
echo "I:checking fast format loading with journal file rollforward"
ret=0
$NSUPDATE <<END > /dev/null || status=1
server 10.53.0.3 5300
ttl 600
update add newtext.dynamic IN TXT "added text"
update delete aaaa.dynamic
send
END
$DIG $DIGOPTS @10.53.0.3 -p 5300 newtext.dynamic txt > dig.out.dynamic.3.1
grep "added text" dig.out.dynamic.3.1 > /dev/null 2>&1 || ret=1
$DIG $DIGOPTS +comm @10.53.0.3 -p 5300 added.dynamic txt > dig.out.dynamic.3.2
grep "NXDOMAIN" dig.out.dynamic.3.2 > /dev/null 2>&1 || ret=1
# using "rndc halt" ensures that we don't dump the zone file
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 halt 2>&1 | sed 's/^/I:ns3 /'
restart
for i in 0 1 2 3 4 5 6 7 8 9; do
lret=0
$DIG $DIGOPTS @10.53.0.3 -p 5300 newtext.dynamic txt > dig.out.dynamic.3.3
grep "added text" dig.out.dynamic.3.3 > /dev/null 2>&1 || lret=1
[ $lret -eq 0 ] && break;
done
[ $lret -eq 1 ] && ret=1
$DIG $DIGOPTS +comm @10.53.0.3 -p 5300 added.dynamic txt > dig.out.dynamic.3.4
grep "NXDOMAIN" dig.out.dynamic.3.4 > /dev/null 2>&1 || ret=1
[ $ret -eq 0 ] || echo "I:failed"
status=`expr $status + $ret`
echo "I:checking fast format file dumps correctly"
ret=0
$NSUPDATE <<END > /dev/null || status=1
server 10.53.0.3 5300
ttl 600
update add moretext.dynamic IN TXT "more text"
send
END
$DIG $DIGOPTS @10.53.0.3 -p 5300 moretext.dynamic txt > dig.out.dynamic.3.5
grep "more text" dig.out.dynamic.3.5 > /dev/null 2>&1 || ret=1
# using "rndc stop" will cause the zone file to flush before shutdown
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 stop 2>&1 | sed 's/^/I:ns3 /'
rm ns3/*.jnl
restart
for i in 0 1 2 3 4 5 6 7 8 9; do
lret=0
$DIG $DIGOPTS +comm @10.53.0.3 -p 5300 moretext.dynamic txt > dig.out.dynamic.3.6
grep "more text" dig.out.dynamic.3.6 > /dev/null 2>&1 || lret=1
[ $lret -eq 0 ] && break;
done
[ $lret -eq 1 ] && ret=1
[ $ret -eq 0 ] || echo "I:failed"
status=`expr $status + $ret`
......
This diff is collapsed.
......@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl
esyscmd([sed "s/^/# /" COPYRIGHT])dnl
AC_DIVERT_POP()dnl
AC_REVISION($Revision: 1.533 $)
AC_REVISION($Revision: 1.533.34.1 $)
AC_INIT(lib/dns/name.c)
AC_PREREQ(2.59)
......@@ -3217,6 +3217,8 @@ BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
. $srcdir/version
BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}${PATCHVER:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}"
AC_SUBST(BIND9_VERSION)
BIND9_MAJOR="MAJOR=${MAJORVER}.${MINORVER}"
AC_SUBST(BIND9_MAJOR)
if test -z "$ac_configure_args"; then
BIND9_CONFIGARGS="defaults"
......@@ -3242,6 +3244,9 @@ LIBISCCFG_API=$srcdir/lib/isccfg/api
AC_SUBST_FILE(LIBDNS_API)
LIBDNS_API=$srcdir/lib/dns/api
AC_SUBST_FILE(LIBDNS_FASTAPI)
LIBDNS_FASTAPI=$srcdir/lib/dns/fastapi
AC_SUBST_FILE(LIBBIND9_API)
LIBBIND9_API=$srcdir/lib/bind9/api
......
......@@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# $Id: Makefile.in,v 1.180 2011/10/11 00:09:03 each Exp $
# $Id: Makefile.in,v 1.180.130.1 2012/02/11 22:37:56 each Exp $
srcdir = @srcdir@
VPATH = @srcdir@
......@@ -24,6 +24,9 @@ top_srcdir = @top_srcdir@
.NO_PARALLEL:
@BIND9_VERSION@
@BIND9_MAJOR@
@LIBDNS_FASTAPI@
@LIBDNS_API@
......@@ -114,6 +117,8 @@ DEPENDEXTRA = ./gen -F include/dns/rdatastruct.h \
version.@O@: version.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
-DMAJOR=\"${MAJOR}\" \
-DFASTAPI=\"${FASTAPI}\" \
-DLIBINTERFACE=${LIBINTERFACE} \
-DLIBREVISION=${LIBREVISION} \
-DLIBAGE=${LIBAGE} \
......
......@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: callbacks.c,v 1.19 2011/12/09 23:47:05 tbox Exp $ */
/* $Id: callbacks.c,v 1.19.40.1 2012/02/07 00:44:13 each Exp $ */
/*! \file */
......@@ -87,6 +87,7 @@ static void
dns_rdatacallbacks_initcommon(dns_rdatacallbacks_t *callbacks) {
REQUIRE(callbacks != NULL);
callbacks->magic = DNS_CALLBACK_MAGIC;
callbacks->add = NULL;
callbacks->rawdata = NULL;
callbacks->zone = NULL;
......
......@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/