--- 9.11.0rc1 released ---
+4461. [bug] win32: not all external data was properly marked
+ as external data for windows dll. [RT #43161]
+
4460. [test] Add system test for dnstap using unix domain sockets.
[RT #42926]
#define BACKTRACE_MAXFRAME 128
#endif
-extern int isc_dscp_check_value;
-extern unsigned int dns_zone_mkey_hour;
-extern unsigned int dns_zone_mkey_day;
-extern unsigned int dns_zone_mkey_month;
+LIBISC_EXTERNAL_DATA extern int isc_dscp_check_value;
+LIBDNS_EXTERNAL_DATA extern unsigned int dns_zone_mkey_hour;
+LIBDNS_EXTERNAL_DATA extern unsigned int dns_zone_mkey_day;
+LIBDNS_EXTERNAL_DATA extern unsigned int dns_zone_mkey_month;
static isc_boolean_t want_stats = ISC_FALSE;
static char program_name[ISC_DIR_NAMEMAX] = "named";
RRCHECKER=$TOP/bin/tools/named-rrchecker
GENRANDOM=$TOP/bin/tools/genrandom
NSLOOKUP=$TOP/bin/dig/nslookup
-DNSTAPREAD="$TOP/bin/tools/dnstap-read"
-MDIG="$TOP/bin/tools/mdig"
-NZD2NZF="$TOP/bin/tools/named-nzd2nzf"
+DNSTAPREAD=$TOP/bin/tools/dnstap-read
+MDIG=$TOP/bin/tools/mdig
+NZD2NZF=$TOP/bin/tools/named-nzd2nzf
FSTRM_CAPTURE=@FSTRM_CAPTURE@
RANDFILE=$TOP/bin/tests/system/random.data
+DLOPEN=$TOP/bin/tests/system/dlzexternal/dlopen
+GENCHECK=$TOP/bin/tests/system/rndc/gencheck
+BIGKEY=$TOP/bin/tests/system/rsabigexponent/bigkey
+KEYCREATE=$TOP/bin/tests/system/tkey/keycreate
+KEYDELETE=$TOP/bin/tests/system/tkey/keydelete
# The "stress" test is not run by default since it creates enough
# load on the machine to make it unusable to other users.
export NAMED LWRESD DIG NSUPDATE KEYGEN KEYFRLAB SIGNER KEYSIGNER KEYSETTOOL \
PERL SUBDIRS RNDC CHECKZONE PK11GEN PK11LIST PK11DEL TESTSOCK6 \
JOURNALPRINT ARPANAME RESOLVE RRCHECKER NSLOOKUP DESCRIPTION PYTHON \
- MDIG FSTRM_CAPTURE NZD2NZF
-
+ MDIG FSTRM_CAPTURE NZD2NZF \
+ RANDFILE DLOPEN GENCHECK BIGKEY KEYCREATE KEYDELETE
RANDFILE=$TOP/bin/tests/system/random.data
+DLOPEN=$TOP/Build/Debug/dlopen@EXEEXT@
+GENCHECK=$TOP/Build/Debug/gencheck@EXEEXT@
+BIGKEY=$TOP/Build/Debug/bigkey@EXEEXT@
+KEYCREATE=$TOP/Build/Debug/keycreate@EXEEXT@
+KEYDELETE=$TOP/Build/Debug/keydelete@EXEEXT@
+
# The "stress" test is not run by default since it creates enough
# load on the machine to make it unusable to other users.
# v6synth
export NAMED LWRESD DIG NSUPDATE KEYGEN KEYFRLAB SIGNER KEYSIGNER KEYSETTOOL \
PERL SUBDIRS RNDC CHECKZONE PK11GEN PK11LIST PK11DEL TESTSOCK6 \
JOURNALPRINT ARPANAME RESOLVE RRCHECKER NSLOOKUP DESCRIPTION PYTHON \
- MDIG FSTRM_CAPTURE NZD2NZF
+ MDIG FSTRM_CAPTURE NZD2NZF \
+ RANDFILE DLOPEN GENCHECK BIGKEY KEYCREATE KEYDELETE
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-./dlopen || {
+SYSTEMTESTTOP=..
+. $SYSTEMTESTTOP/conf.sh
+
+$DLOPEN || {
echo "I:dlopen() not supported - skipping dlzexternal test"
exit 255
}
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-../dlzexternal/dlopen || {
+SYSTEMTESTTOP=..
+. $SYSTEMTESTTOP/conf.sh
+
+$DLOPEN || {
echo "I:dlopen() not supported - skipping dyndb test"
exit 255
}
+echo off
+rem
+rem Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+rem
+rem This Source Code Form is subject to the terms of the Mozilla Public
+rem License, v. 2.0. If a copy of the MPL was not distributed with this
+rem file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rem ifconfig.bat
+rem Set up interface aliases for bind9 system tests.
+rem
+rem IPv4: 10.53.0.{1..8} RFC 1918
+rem IPv6: fd92:7065:b8e:ffff::{1..8} ULA
+rem
+
+echo Please adapt this script to your system
+rem remove the following line when the script is ready
+exit /b 1
+
+rem for IPv4 adding these static addresses to a physical interface
+rem will switch it from DHCP to static flushing DHCP setup.
+rem So it is highly recommended to install the loopback pseudo-interface
+rem and add IPv4 addresses to it.
+
+rem for IPv6 your interface can have a different name, e.g.,
+rem "Local Area Connection". Please update this script and remove the
+rem exit line
+
+echo on
+
FOR %%I IN (1,2,3,4,5,6,7,8) DO (
- netsh interface ipv4 add address name="Ethernet" 10.53.0.%%I 255.255.255.0
- netsh interface ipv6 add address interface="Ethernet" fd92:7065:b8e:ffff::%%I/64
+ netsh interface ipv4 add address name=Loopback 10.53.0.%%I 255.255.255.0
+ netsh interface ipv6 add address interface=Ethernet fd92:7065:b8e:ffff::%%I/64
)
-
\ No newline at end of file
+++ /dev/null
-random.data
+++ /dev/null
-random.data
echo "I:testing rndc buffer size limits (size=${i}) ($n)"
ret=0
$RNDC -s 10.53.0.4 -p 9956 -c ns4/key6.conf testgen ${i} 2>&1 > rndc.output.test$n || ret=1
- actual_size=`./gencheck rndc.output.test$n`
+ actual_size=`$GENCHECK rndc.output.test$n`
if [ "$?" = "0" ]; then
expected_size=`expr $i + 1`
if [ $actual_size != $expected_size ]; then ret=1; fi
test -r $RANDFILE || $GENRANDOM 400 $RANDFILE
-if ./bigkey > /dev/null 2>&1
+if $BIGKEY > /dev/null 2>&1
then
rm -f Kexample.*
else
rm -f */K*.key */K*.private */*.signed */*.db */dsset-*
rm -f */managed.conf */trusted.conf
-rm -f random.data
rm -f */named.memstats
rm -f */named.run
rm -f dig.*
SYSTEMTESTTOP=../..
. $SYSTEMTESTTOP/conf.sh
-RANDFILE=../random.data
-
zone=.
infile=root.db.in
zonefile=root.db
SYSTEMTESTTOP=../..
. $SYSTEMTESTTOP/conf.sh
-RANDFILE=../random.data
-
zone=example.
infile=example.db.in
zonefile=example.db
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
-$GENRANDOM 400 random.data
+$GENRANDOM 400 $RANDFILE
-if $KEYGEN -q -a RSAMD5 -b 512 -n zone -r random.data foo > /dev/null 2>&1
+if $KEYGEN -q -a RSAMD5 -b 512 -n zone -r $RANDFILE foo > /dev/null 2>&1
then
rm -f Kfoo*
else
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
-$GENRANDOM 400 random.data
+$SHELL clean.sh
+
+test -r $RANDFILE || $GENRANDOM 400 $RANDFILE
cd ns1 && $SHELL sign.sh
do
echo "I:creating new key using owner name \"$owner\""
ret=0
- keyname=`./keycreate $dhkeyname $owner` || ret=1
+ keyname=`$KEYCREATE $dhkeyname $owner` || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
status=`expr $status + $ret`
echo "I:deleting new key"
ret=0
- ./keydelete $keyname || ret=1
+ $KEYDELETE $keyname || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
fi
echo "I:creating new key using owner name bar.example."
ret=0
-keyname=`./keycreate $dhkeyname bar.example.` || ret=1
+keyname=`$KEYCREATE $dhkeyname bar.example.` || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
status=`expr $status + $ret`
echo "I:recreating the bar.example. key"
ret=0
-keyname=`./keycreate $dhkeyname bar.example.` || ret=1
+keyname=`$KEYCREATE $dhkeyname bar.example.` || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
status=`expr $status + $ret`
-random.data
verify.out.*
zones/*.good
zones/*.bad
static isc_entropy_t *dst_entropy_pool = NULL;
static unsigned int dst_entropy_flags = 0;
-isc_boolean_t dst_initialized = ISC_FALSE;
+static isc_boolean_t dst_initialized = ISC_FALSE;
void gss_log(int level, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
-isc_mem_t *dst__memory_pool = NULL;
+LIBDNS_EXTERNAL_DATA isc_mem_t *dst__memory_pool = NULL;
/*
* Static functions.
#define VALID_KEY(x) ISC_MAGIC_VALID(x, KEY_MAGIC)
#define VALID_CTX(x) ISC_MAGIC_VALID(x, CTX_MAGIC)
-extern isc_mem_t *dst__memory_pool;
+LIBDNS_EXTERNAL_DATA extern isc_mem_t *dst__memory_pool;
/***
*** Types
return (result);
}
-isc_boolean_t dns_iptable_neg = ISC_FALSE;
-isc_boolean_t dns_iptable_pos = ISC_TRUE;
+static isc_boolean_t dns_iptable_neg = ISC_FALSE;
+static isc_boolean_t dns_iptable_pos = ISC_TRUE;
/*
* Add an IP prefix to an existing IP table
key->keydata.pkey = NULL;
}
-unsigned char gost_prefix[37] = {
+static const unsigned char gost_prefix[37] = {
0x30, 0x63, 0x30, 0x1c, 0x06, 0x06, 0x2a, 0x85,
0x03, 0x02, 0x02, 0x13, 0x30, 0x12, 0x06, 0x07,
0x2a, 0x85, 0x03, 0x02, 0x02, 0x23, 0x01, 0x06,
dns_zone_logc
dns_zone_maintenance
dns_zone_markdirty
-dns_zone_mkey_day
-dns_zone_mkey_hour
-dns_zone_mkey_month
dns_zone_name
dns_zone_nameonly
dns_zone_next
EXPORTS
+dns_pps DATA
dns_master_style_full DATA
+dns_msgcat DATA
+dns_tsig_hmacmd5_name DATA
+dns_zone_mkey_day DATA
+dns_zone_mkey_hour DATA
+dns_zone_mkey_month DATA
+dst__memory_pool DATA
+dst_msgcat DATA
@END NOLONGER
#define HOUR 3600
#define DAY (24*HOUR)
#define MONTH (30*DAY)
-unsigned int dns_zone_mkey_hour = HOUR;
-unsigned int dns_zone_mkey_day = DAY;
-unsigned int dns_zone_mkey_month = MONTH;
+LIBDNS_EXTERNAL_DATA unsigned int dns_zone_mkey_hour = HOUR;
+LIBDNS_EXTERNAL_DATA unsigned int dns_zone_mkey_day = DAY;
+LIBDNS_EXTERNAL_DATA unsigned int dns_zone_mkey_month = MONTH;
#define SEND_BUFFER_SIZE 2048
#include <isc/backtrace.h>
-const int isc__backtrace_nsymbols = 0;
-const isc_backtrace_symmap_t isc__backtrace_symtable[] = { { NULL, "" } };
+LIBISC_EXTERNAL_DATA const int isc__backtrace_nsymbols = 0;
+LIBISC_EXTERNAL_DATA const
+ isc_backtrace_symmap_t isc__backtrace_symtable[] = { { NULL, "" } };
const char *symbol;
};
-extern const int isc__backtrace_nsymbols;
-extern const isc_backtrace_symmap_t isc__backtrace_symtable[];
+LIBISC_EXTERNAL_DATA extern const int isc__backtrace_nsymbols;
+LIBISC_EXTERNAL_DATA extern const
+ isc_backtrace_symmap_t isc__backtrace_symtable[];
/***
*** Functions
isc__appctx_setsocketmgr
isc__appctx_settaskmgr
isc__appctx_settimermgr
-isc__backtrace_nsymbols
-isc__backtrace_symtable
isc__buffer_activeregion
isc__buffer_add
isc__buffer_availableregion
isc_dir_open
isc_dir_read
isc_dir_reset
-isc_dscp_check_value
isc_entropy_addcallbacksample
isc_entropy_addsample
isc_entropy_attach
EXPORTS
+isc__backtrace_nsymbols DATA
+isc__backtrace_symtable DATA
isc_bind9 DATA
isc_commandline_argument DATA
isc_commandline_errprint DATA
isc_commandline_option DATA
isc_commandline_progname DATA
isc_commandline_reset DATA
+isc_dscp_check_value DATA
isc_hashctx DATA
isc_mem_debugging DATA
+isc_msgcat DATA
@IF PKCS11
+pk11_msgcat DATA
pk11_verbose_init DATA
@END PKCS11
@END NOLONGER
* other than -1, we check to make sure DSCP values match it, and
* assert if not.
*/
-int isc_dscp_check_value = -1;
+LIBISC_EXTERNAL_DATA int isc_dscp_check_value = -1;
/*
* How in the world can Microsoft exist with APIs like this?
isccc_symtab_define
isccc_symtab_undefine
isccc_symtab_foreach
+
+; Exported Data
+
+;isccc_msgcat
* not need a union member).
*/
-cfg_rep_t cfg_rep_uint32 = { "uint32", free_noop };
-cfg_rep_t cfg_rep_uint64 = { "uint64", free_noop };
-cfg_rep_t cfg_rep_string = { "string", free_string };
-cfg_rep_t cfg_rep_boolean = { "boolean", free_noop };
-cfg_rep_t cfg_rep_map = { "map", free_map };
-cfg_rep_t cfg_rep_list = { "list", free_list };
-cfg_rep_t cfg_rep_tuple = { "tuple", free_tuple };
-cfg_rep_t cfg_rep_sockaddr = { "sockaddr", free_noop };
-cfg_rep_t cfg_rep_netprefix = { "netprefix", free_noop };
-cfg_rep_t cfg_rep_void = { "void", free_noop };
-cfg_rep_t cfg_rep_fixedpoint = { "fixedpoint", free_noop };
-cfg_rep_t cfg_rep_percentage = { "percentage", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_uint32 = { "uint32", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_uint64 = { "uint64", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_string = { "string", free_string };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_boolean = { "boolean", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_map = { "map", free_map };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_list = { "list", free_list };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_tuple = { "tuple", free_tuple };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_sockaddr = { "sockaddr", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_netprefix =
+ { "netprefix", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_void = { "void", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_fixedpoint =
+ { "fixedpoint", free_noop };
+LIBISCCFG_EXTERNAL_DATA cfg_rep_t cfg_rep_percentage =
+ { "percentage", free_noop };
/*
* Configuration type definitions.
return (ISC_TF(obj->type->rep == &cfg_rep_void));
}
-cfg_type_t cfg_type_void = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_void = {
"void", cfg_parse_void, cfg_print_void, cfg_doc_void, &cfg_rep_void,
NULL };
return (obj->value.uint32);
}
-cfg_type_t cfg_type_percentage = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_percentage = {
"percentage", cfg_parse_percentage, cfg_print_percentage,
cfg_doc_terminal, &cfg_rep_percentage, NULL
};
return (obj->value.uint32);
}
-cfg_type_t cfg_type_fixedpoint = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_fixedpoint = {
"fixedpoint", cfg_parse_fixedpoint, cfg_print_fixedpoint,
cfg_doc_terminal, &cfg_rep_fixedpoint, NULL
};
return (obj->value.uint32);
}
-cfg_type_t cfg_type_uint32 = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_uint32 = {
"integer", cfg_parse_uint32, cfg_print_uint32, cfg_doc_terminal,
&cfg_rep_uint32, NULL
};
cfg_print_cstr(pctx, buf);
}
-cfg_type_t cfg_type_uint64 = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_uint64 = {
"64_bit_integer", NULL, cfg_print_uint64, cfg_doc_terminal,
&cfg_rep_uint64, NULL
};
}
/* Quoted string only */
-cfg_type_t cfg_type_qstring = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_qstring = {
"quoted_string", cfg_parse_qstring, print_qstring, cfg_doc_terminal,
&cfg_rep_string, NULL
};
/* Unquoted string only */
-cfg_type_t cfg_type_ustring = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_ustring = {
"string", parse_ustring, cfg_print_ustring, cfg_doc_terminal,
&cfg_rep_string, NULL
};
/* Any string (quoted or unquoted); printed with quotes */
-cfg_type_t cfg_type_astring = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_astring = {
"string", cfg_parse_astring, print_qstring, cfg_doc_terminal,
&cfg_rep_string, NULL
};
* Any string (quoted or unquoted); printed with quotes.
* If CFG_PRINTER_XKEY is set when printing the string will be '?' out.
*/
-cfg_type_t cfg_type_sstring = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_sstring = {
"string", cfg_parse_sstring, print_sstring, cfg_doc_terminal,
&cfg_rep_string, NULL
};
* text to dynamic library or external application. Checked for
* bracket balance, but not otherwise parsed.
*/
-cfg_type_t cfg_type_bracketed_text = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_bracketed_text = {
"bracketed_text", parse_btext, print_btext, doc_btext,
&cfg_rep_string, NULL
};
cfg_print_cstr(pctx, "no");
}
-cfg_type_t cfg_type_boolean = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_boolean = {
"boolean", cfg_parse_boolean, cfg_print_boolean, cfg_doc_terminal,
&cfg_rep_boolean, NULL
};
return (result);
}
-cfg_type_t cfg_type_token = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_token = {
"token", parse_token, cfg_print_ustring, cfg_doc_terminal,
&cfg_rep_string, NULL
};
return (result);
}
-cfg_type_t cfg_type_unsupported = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_unsupported = {
"unsupported", parse_unsupported, cfg_print_spacelist, cfg_doc_terminal,
&cfg_rep_list, NULL
};
cfg_print_cstr(pctx, " )");
}
-cfg_type_t cfg_type_netaddr = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_netaddr = {
"netaddr", parse_netaddr, cfg_print_sockaddr, cfg_doc_netaddr,
&cfg_rep_sockaddr, &netaddr_flags
};
-cfg_type_t cfg_type_netaddr4 = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_netaddr4 = {
"netaddr4", parse_netaddr, cfg_print_sockaddr, cfg_doc_netaddr,
&cfg_rep_sockaddr, &netaddr4_flags
};
-cfg_type_t cfg_type_netaddr4wild = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_netaddr4wild = {
"netaddr4wild", parse_netaddr, cfg_print_sockaddr, cfg_doc_netaddr,
&cfg_rep_sockaddr, &netaddr4wild_flags
};
-cfg_type_t cfg_type_netaddr6 = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_netaddr6 = {
"netaddr6", parse_netaddr, cfg_print_sockaddr, cfg_doc_netaddr,
&cfg_rep_sockaddr, &netaddr6_flags
};
-cfg_type_t cfg_type_netaddr6wild = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_netaddr6wild = {
"netaddr6wild", parse_netaddr, cfg_print_sockaddr, cfg_doc_netaddr,
&cfg_rep_sockaddr, &netaddr6wild_flags
};
*prefixlen = obj->value.netprefix.prefixlen;
}
-cfg_type_t cfg_type_netprefix = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_netprefix = {
"netprefix", cfg_parse_netprefix, print_netprefix, cfg_doc_terminal,
&cfg_rep_netprefix, NULL
};
}
static unsigned int sockaddr_flags = CFG_ADDR_V4OK | CFG_ADDR_V6OK;
-cfg_type_t cfg_type_sockaddr = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_sockaddr = {
"sockaddr", cfg_parse_sockaddr, cfg_print_sockaddr, cfg_doc_sockaddr,
&cfg_rep_sockaddr, &sockaddr_flags
};
static unsigned int sockaddrdscp_flags = CFG_ADDR_V4OK | CFG_ADDR_V6OK |
CFG_ADDR_DSCPOK;
-cfg_type_t cfg_type_sockaddrdscp = {
+LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_sockaddrdscp = {
"sockaddr", cfg_parse_sockaddr, cfg_print_sockaddr, cfg_doc_sockaddr,
&cfg_rep_sockaddr, &sockaddrdscp_flags
};
; Exported Data
+;cfg_rep_boolean
+;cfg_rep_fixedpoint
+;cfg_rep_list
+;cfg_rep_map
+;cfg_rep_netprefix
+;cfg_rep_percentage
+;cfg_rep_sockaddr
+;cfg_rep_string
+;cfg_rep_tuple
+;cfg_rep_uint32
+;cfg_rep_uint64
+;cfg_rep_void
+;cfg_type_astring
+;cfg_type_boolean
+;cfg_type_bracketed_text
+;cfg_type_fixedpoint
+;cfg_type_netaddr
+;cfg_type_netaddr4
+;cfg_type_netaddr4wild
+;cfg_type_netaddr6
+;cfg_type_netaddr6wild
+;cfg_type_netprefix
+;cfg_type_percentage
+;cfg_type_qstring
;cfg_type_rndcconf
+;cfg_type_sockaddr
+;cfg_type_sockaddrdscp
+;cfg_type_sstring
+;cfg_type_token
+;cfg_type_uint32
+;cfg_type_uint64
+;cfg_type_unsupported
+;cfg_type_ustring
+;cfg_type_void
/*
* Some generally used utilities.
*/
-struct dns_errormap {
+static const struct dns_errormap {
isc_result_t result;
const char *text;
} dns_errormap[] = {
isc_result_t
t_dns_result_fromtext(char *name) {
- isc_result_t result;
- struct dns_errormap *pmap;
+ isc_result_t result;
+ const struct dns_errormap *pmap;
result = ISC_R_UNEXPECTED;
return (result);
}
-struct dc_method_map {
+static const struct dc_method_map {
unsigned int dc_method;
const char *text;
} dc_method_map[] = {
unsigned int
t_dc_method_fromtext(char *name) {
- unsigned int dc_method;
- struct dc_method_map *pmap;
+ unsigned int dc_method;
+ const struct dc_method_map *pmap;
dc_method = DNS_COMPRESS_NONE;
# files to configure
-my $configfilein = "..\\config.h.win32";
-my $configfileout = ">..\\config.h";
+my $configfile = "..\\config.h";
my $platformfile = "..\\lib\\isc\\win32\\include\\isc\\platform.h";
+my $confshfile = "..\\bin\\tests\\system\\conf.sh";
my @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
"..\\bin\\check\\win32\\checkconf.dsp",
"..\\bin\\python\\dnssec-checkds.py",
"..\\bin\\python\\dnssec-coverage.py",
"..\\bin\\python\\dnssec-keymgr.py",
+ "..\\bin\\python\\isc\\__init__.py",
+ "..\\bin\\python\\isc\\checkds.py",
+ "..\\bin\\python\\isc\\coverage.py",
+ "..\\bin\\python\\isc\\dnskey.py",
+ "..\\bin\\python\\isc\\eventlist.py",
+ "..\\bin\\python\\isc\\keydict.py",
+ "..\\bin\\python\\isc\\keyevent.py",
+ "..\\bin\\python\\isc\\keymgr.py",
+ "..\\bin\\python\\isc\\keyseries.py",
+ "..\\bin\\python\\isc\\keyzone.py",
+ "..\\bin\\python\\isc\\policy.py",
+ "..\\bin\\python\\isc\\rndc.py",
+ "..\\bin\\python\\isc\\tests\\dnskey_test.py",
+ "..\\bin\\python\\isc\\tests\\policy_test.py",
"..\\bin\\python\\isc\\utils.py",
"..\\bin\\rndc\\win32\\rndc.dsp",
"..\\bin\\rndc\\win32\\rndc.mak",
"..\\bin\\tests\\resolver\\win32\\t_resolver.mak",
"..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.dsp",
"..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.mak",
- "..\\bin\\tests\\system\\conf.sh.win32",
"..\\bin\\tests\\tasks\\win32\\t_tasks.dsp",
"..\\bin\\tests\\tasks\\win32\\t_tasks.mak",
"..\\bin\\tests\\timers\\win32\\t_timers.dsp",
"ISC_PLATFORM_USEBACKTRACE",
"ISC_PLATFORM_WANTAES");
+# for conf.sh
+
+my %configtest;
+
+my @substtest = ("CHECK_DSA",
+ "CHECKDS",
+ "COVERAGE",
+ "CURL",
+ "DNSTAP",
+ "FSTRM_CAPTURE",
+ "JSONSTATS",
+ "KEYMGR",
+ "NZD_TOOLS",
+ "PERL",
+ "PKCS11_TEST",
+ "SHELL",
+ "XMLLINT",
+ "XMLSTATS",
+ "ZLIB"),
+
# includes
my %configinc;
"PYTHON",
"VCREDIST_PATH"),
-my %configtest;
-
-my @substtest = ("CHECK_DSA",
- "CHECKDS",
- "COVERAGE",
- "CURL",
- "DNSTAP",
- "FSTRM_CAPTURE",
- "JSONSTATS",
- "KEYMGR",
- "NZD_TOOLS",
- "PERL",
- "PKCS11_TEST",
- "SHELL",
- "XMLLINT",
- "XMLSTATS",
- "ZLIB"),
-
# defines
my %configdefd;
$enable_fixed_rrset = "yes";
# TODO: dlz filesystem
$use_tests = "yes";
+ $use_xtests = "yes";
+ $use_stests = "yes";
$use_samples = "yes";
}
# clean up and exit if requested
if ($want_clean eq "yes") {
my $file;
+
+ unlink($configfile);
+ unlink($platformfile);
+ unlink($confshfile);
+
foreach $file (@filelist) {
unlink($file);
}
$configdefh{"TUNE_LARGE"} = 1;
}
+# escape spaces
+
+sub kw {
+ if ($_[0] =~ / /) {
+ return "\"$_[0]\"";
+ } else {
+ return "$_[0]";
+ }
+}
+
# setup config.h with %configdefh
sub setupconfigh {
my $line;
my @Lines;
- open F, $configfilein || die $!;
+ open F, $configfile . ".win32" || die $!;
@Lines = <F>;
close F;
}
}
- open F, $configfileout || die $!;
+ open F, ">" . $configfile || die $!;
if ($verbose) {
- print "Setting up config.h\n";
+ print "Setting up $configfile\n";
}
foreach $line (@Lines) {
print F $line . "\n";
open F, ">" . $platformfile || die $!;
if ($verbose) {
- print "Setting up platform.h\n";
+ print "Setting up $platformfile\n";
}
foreach $line (@Lines) {
print F $line . "\n";
close F;
}
-# escape spaces
+# setup conf.sh with %configtest and %configvar
-sub kw {
- if ($_[0] =~ / /) {
- return "\"$_[0]\"";
- } else {
- return "$_[0]";
+sub setupconfsh {
+ my $line;
+ my @Lines;
+ my $val;
+
+ open F, $confshfile . ".win32" || die $!;
+ @Lines = <F>;
+ close F;
+
+ foreach $line (@Lines) {
+ chomp $line;
+ while ($line =~ /@([^@]+)\@/) {
+ if ($1 ~~ @substtest) {
+ if (defined($configtest{$1})) {
+ $val = kw($configtest{$1});
+ $line = "$`$val$'";
+ } else {
+ $line = "$`$'";
+ }
+ } elsif ($1 ~~ @substvar) {
+ if (defined($configvar{$1})) {
+ $val = kw($configvar{$1});
+ $line = "$`$val$'";
+ } else {
+ $line = "$`$'";
+ }
+ } else {
+ die "unknown control $& in $confshfile.win32\n";
+ }
+ }
+ }
+
+ open F, ">" . $confshfile || die $!;
+ if ($verbose) {
+ print "Setting up $confshfile\n";
+ }
+ binmode(F);
+ foreach $line (@Lines) {
+ print F $line . "\n";
}
+ close F;
}
# setup a file with %configcond stack and %config{var,defd,inc,lib,dll,test}
} else {
$line = "$`$'";
}
- } elsif ($1 ~~ @substtest) {
- if (defined($configtest{$1})) {
- $val = kw($configtest{$1});
- $line = "$`$val$'";
- } else {
- $line = "$`$'";
- }
} else {
die "unknown control $& in $filename\n";
}
}
}
+ print "\tconf.sh:\n";
+ foreach $name (@substtest) {
+ if (defined($configtest{$name})) {
+ print qq(\t\t$name defined to "$configtest{$name}"\n);
+ } else {
+ printf qq(\t\t$name undefined\n);
+ }
+ }
+
print "\tconditions:\n";
foreach $name (@substcond) {
if (defined($configcond{$name})) {
setupplatformh();
+ setupconfsh();
+
my $file;
foreach $file (@filelist) {
setupfile($file);