]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
merged last fixes, specialized conf.sh code, added env vars in conf.sh (checkpoint)
authorFrancis Dupont <fdupont@isc.org>
Sat, 10 Sep 2016 00:13:11 +0000 (02:13 +0200)
committerFrancis Dupont <fdupont@isc.org>
Sat, 10 Sep 2016 00:13:11 +0000 (02:13 +0200)
33 files changed:
CHANGES
bin/named/main.c
bin/tests/system/conf.sh.in
bin/tests/system/conf.sh.win32 [moved from bin/tests/system/conf.sh.win32.in with 93% similarity]
bin/tests/system/dlzexternal/prereq.sh
bin/tests/system/dyndb/prereq.sh
bin/tests/system/ifconfig.bat
bin/tests/system/pkcs11/.gitignore [deleted file]
bin/tests/system/pkcs11ssl/.gitignore [deleted file]
bin/tests/system/rndc/tests.sh
bin/tests/system/rsabigexponent/prereq.sh
bin/tests/system/sfcache/clean.sh
bin/tests/system/sfcache/ns1/sign.sh
bin/tests/system/sfcache/ns2/sign.sh
bin/tests/system/sfcache/prereq.sh
bin/tests/system/sfcache/setup.sh
bin/tests/system/tkey/tests.sh
bin/tests/system/verify/.gitignore
lib/dns/dst_api.c
lib/dns/dst_internal.h
lib/dns/iptable.c
lib/dns/opensslgost_link.c
lib/dns/win32/libdns.def.in
lib/dns/zone.c
lib/isc/backtrace-emptytbl.c
lib/isc/include/isc/backtrace.h
lib/isc/win32/libisc.def.in
lib/isc/win32/socket.c
lib/isccc/win32/libisccc.def
lib/isccfg/parser.c
lib/isccfg/win32/libisccfg.def
lib/tests/t_api.c
win32utils/Configure

diff --git a/CHANGES b/CHANGES
index 91462d32d30281444982faa485432781d9e9378d..88775a39b93e68d9a86cdcc4f02c822cacccdd44 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
        --- 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]
 
index a455c1856a1f3d0190643ba30c672f7aca0fe05a..e0dafb18d897db11e89d9dcf0f9385884076a0c7 100644 (file)
 #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";
index 064c76a9571fe5d9bb8afc0ae7d60cbd9ec45210..1e5983e89f49698463f591f74f09e950bc12fdff 100644 (file)
@@ -50,13 +50,18 @@ RESOLVE=$TOP/lib/samples/resolve
 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.
@@ -128,5 +133,5 @@ NZD=@NZD_TOOLS@
 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
similarity index 93%
rename from bin/tests/system/conf.sh.win32.in
rename to bin/tests/system/conf.sh.win32
index ed4b642744dab77da26923ac526549045a9b4c7d..456e3426485102031498b426a77e1e0adbbd17d9 100644 (file)
@@ -57,6 +57,12 @@ FSTRM_CAPTURE=@FSTRM_CAPTURE@
 
 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
@@ -122,5 +128,6 @@ NZD=@NZD_TOOLS@
 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
 
index 5a960d4ba843d97b5c2ec82f4c7b1e63fa162d79..e6ffc75e139890131be3b8963cb3069e800a7d15 100644 (file)
@@ -6,7 +6,10 @@
 # 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
 }
index d89f2e4e6605eb74cb39484254eff0bd477a6e90..8de97216463a8ec5cf3b9afa93cc4e023476037f 100644 (file)
@@ -6,7 +6,10 @@
 # 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
 }
index 7b6b3de2557a1d9616fd3a1734e17e345807db80..0d87c796fd6a20d2329123e98f44af5e62969564 100644 (file)
@@ -1,5 +1,34 @@
+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
diff --git a/bin/tests/system/pkcs11/.gitignore b/bin/tests/system/pkcs11/.gitignore
deleted file mode 100644 (file)
index 8ffe9f6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-random.data
diff --git a/bin/tests/system/pkcs11ssl/.gitignore b/bin/tests/system/pkcs11ssl/.gitignore
deleted file mode 100644 (file)
index 8ffe9f6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-random.data
index 8ccf7d226404c9bb8560ca70650cdb53c84ff0df..51bf8d9ebd775021f4fd2609bb3c14df8bc5ebcb 100644 (file)
@@ -417,7 +417,7 @@ do
        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
index c707d34294493134278fa1ceb45bba1ef80862ab..91780dc5a6994cd35faa3ae37d5773ccaa42ab9c 100644 (file)
@@ -11,7 +11,7 @@ SYSTEMTESTTOP=..
 
 test -r $RANDFILE || $GENRANDOM 400 $RANDFILE
 
-if ./bigkey > /dev/null 2>&1
+if $BIGKEY > /dev/null 2>&1
 then
     rm -f Kexample.*
 else
index b9e8f05bdcb89300404bec7f46d92923ea1c2299..1f22f85c01ee6d20a2351a63fd2155664dcf80df 100644 (file)
@@ -8,7 +8,6 @@
 
 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.*
index 9e43e9b7fcd6b3d223f7f628dba950d8c9a4573b..42652ebe89c46522b1f3411d118f781537618888 100644 (file)
@@ -9,8 +9,6 @@
 SYSTEMTESTTOP=../..
 . $SYSTEMTESTTOP/conf.sh
 
-RANDFILE=../random.data
-
 zone=.
 infile=root.db.in
 zonefile=root.db
index d2b8954db9afa2d7297b5f446c4452e7ecda7336..dab01ce54fc25cc3d6320a6418bfebbc5ee0943f 100644 (file)
@@ -9,8 +9,6 @@
 SYSTEMTESTTOP=../..
 . $SYSTEMTESTTOP/conf.sh
 
-RANDFILE=../random.data
-
 zone=example.
 infile=example.db.in
 zonefile=example.db
index 7a0cae0697d427afeb0015cc057f49237357d0be..18f6e96a69b0ea45942a82786cb03772909a4479 100644 (file)
@@ -9,9 +9,9 @@
 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
index 2d32b23447c385c237045ceccd34fb6f17b41653..b5d5a7a7138a090156e9b1ee63c1584d5972b170 100644 (file)
@@ -9,7 +9,9 @@
 SYSTEMTESTTOP=..
 . $SYSTEMTESTTOP/conf.sh
 
-$GENRANDOM 400 random.data
+$SHELL clean.sh
+
+test -r $RANDFILE || $GENRANDOM 400 $RANDFILE
 
 cd ns1 && $SHELL sign.sh
 
index a14700242161ea016291c679ea69d5e239e0f8e8..04d179fe29aca2ec2ab8793b15833be3b0c5fae7 100644 (file)
@@ -30,7 +30,7 @@ for owner in . foo.example.
 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`
@@ -52,7 +52,7 @@ do
 
        echo "I:deleting new key"
        ret=0
-       ./keydelete $keyname || ret=1
+       $KEYDELETE $keyname || ret=1
        if [ $ret != 0 ]; then
                echo "I:failed"
        fi
@@ -72,7 +72,7 @@ done
 
 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`
@@ -113,7 +113,7 @@ 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`
index 00eed08c0e3ab98b2fc0665b68f92cfb76b987a9..e1055b0166d259769c9c267f22c1c6361dab6047 100644 (file)
@@ -1,4 +1,3 @@
-random.data
 verify.out.*
 zones/*.good
 zones/*.bad
index f071fef1d9ab9451c1274cf670bbd0c081a226c3..65f5768d01d402139f50f89fbdc0b5190a3dddba 100644 (file)
@@ -71,11 +71,11 @@ static dst_func_t *dst_t_func[DST_MAX_ALGS];
 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.
index 4a42097efa8c96ad038d01ba192447713ab5bffa..d115d1a926f553678f79e578a67ab29859d3e783 100644 (file)
@@ -66,7 +66,7 @@ ISC_LANG_BEGINDECLS
 #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
index 4d4f76bc8f58afda583ee4cc465286ccb5b77667..21029e0d84f27d08a284489037d184e51127fe0f 100644 (file)
@@ -44,8 +44,8 @@ dns_iptable_create(isc_mem_t *mctx, dns_iptable_t **target) {
        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
index e309e0321267abe15b717eba4c1ea6e365fe55b4..6b04f7b77f3d54569137a06764f8063ed5155927 100644 (file)
@@ -273,7 +273,7 @@ opensslgost_destroy(dst_key_t *key) {
        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,
index 594125ef4d9f42cb62ab43ca95f6b6db30aeda32..dc542baab3aefe5ab5a661652f7369ea4f3ce889 100644 (file)
@@ -1240,9 +1240,6 @@ dns_zone_log
 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
@@ -1466,5 +1463,13 @@ dst_result_totext
 
 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
index e3c884f5bda0410045fd8f71923ebfa7497b6458..e48da3e3169522bada44ebb0ec97bf08eac42821 100644 (file)
@@ -720,9 +720,9 @@ struct dns_include {
 #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
 
index 1dbd0827a90827d3d713f72a3aa5450ccc37dfbb..dd0bd2acd99e5628aae425cc788d6ff32d98cc76 100644 (file)
@@ -22,5 +22,6 @@
 
 #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, "" } };
index cf033a919b80ae072013f4c9cae0e3010e05d054..4dad07734281092e8b542a680b72627b85657cdb 100644 (file)
@@ -46,8 +46,9 @@ struct isc_backtrace_symmap {
        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
index 4e112f27223a2576853057827f906118a1090c87..32717f5b08742098dea7dc481df4d7dcb0046750 100644 (file)
@@ -28,8 +28,6 @@ isc__appctx_destroy
 isc__appctx_setsocketmgr
 isc__appctx_settaskmgr
 isc__appctx_settimermgr
-isc__backtrace_nsymbols
-isc__backtrace_symtable
 isc__buffer_activeregion
 isc__buffer_add
 isc__buffer_availableregion
@@ -195,7 +193,6 @@ isc_dir_init
 isc_dir_open
 isc_dir_read
 isc_dir_reset
-isc_dscp_check_value
 isc_entropy_addcallbacksample
 isc_entropy_addsample
 isc_entropy_attach
@@ -804,6 +801,8 @@ syslog
 
 EXPORTS
 
+isc__backtrace_nsymbols                DATA
+isc__backtrace_symtable                DATA
 isc_bind9                      DATA
 isc_commandline_argument       DATA
 isc_commandline_errprint       DATA
@@ -811,9 +810,12 @@ isc_commandline_index              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
index 908e60e9dd8666419b345c48bf63b0a6f355d31f..1bf9bfe689c9f064b3c867385229864c8edd0c1c 100644 (file)
@@ -74,7 +74,7 @@
  * 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?
index 5d32a5283062ea324db7417fe43e8f474ebf5103..7a06b9a4470bb8dc9cd561d1f7ef2e1837974e41 100644 (file)
@@ -64,3 +64,7 @@ isccc_symtab_lookup
 isccc_symtab_define
 isccc_symtab_undefine
 isccc_symtab_foreach
+
+; Exported Data
+
+;isccc_msgcat
index 70fde68e1392555a510b9c0b8a0379f8ae39efc7..c25c5fde0c86e7e7cd19df1a9104c3704c8bf1cb 100644 (file)
@@ -103,18 +103,21 @@ parser_complain(cfg_parser_t *pctx, isc_boolean_t is_warning,
  * 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.
@@ -638,7 +641,7 @@ cfg_obj_isvoid(const cfg_obj_t *obj) {
        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 };
 
@@ -694,7 +697,7 @@ cfg_obj_aspercentage(const cfg_obj_t *obj) {
        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
 };
@@ -774,7 +777,7 @@ cfg_obj_asfixedpoint(const cfg_obj_t *obj) {
        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
 };
@@ -837,7 +840,7 @@ cfg_obj_asuint32(const cfg_obj_t *obj) {
        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
 };
@@ -866,7 +869,7 @@ cfg_print_uint64(cfg_printer_t *pctx, const cfg_obj_t *obj) {
        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
 };
@@ -1092,19 +1095,19 @@ cfg_obj_asstring(const cfg_obj_t *obj) {
 }
 
 /* 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
 };
@@ -1113,7 +1116,7 @@ cfg_type_t cfg_type_astring = {
  * 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
 };
@@ -1123,7 +1126,7 @@ cfg_type_t cfg_type_sstring = {
  * 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
 };
@@ -1192,7 +1195,7 @@ cfg_print_boolean(cfg_printer_t *pctx, const cfg_obj_t *obj) {
                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
 };
@@ -1940,7 +1943,7 @@ parse_token(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
        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
 };
@@ -1989,7 +1992,7 @@ parse_unsupported(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
        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
 };
@@ -2233,27 +2236,27 @@ cfg_doc_netaddr(cfg_printer_t *pctx, const cfg_type_t *type) {
                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
 };
@@ -2339,7 +2342,7 @@ cfg_obj_asnetprefix(const cfg_obj_t *obj, isc_netaddr_t *netaddr,
        *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
 };
@@ -2397,14 +2400,14 @@ parse_sockaddrsub(cfg_parser_t *pctx, const cfg_type_t *type,
 }
 
 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
 };
index 092c3c0ffb2273633c532c9c5f0e3d41241d6f7f..a54780bc26b6e67436403c0fa0945b235621d022 100644 (file)
@@ -121,4 +121,37 @@ cfg_ungettoken
 
 ; 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
index 43af552e9f5d7deffc8dbe9dc0c4bee927ae2c14..5b7b03e25026bee28575c74e28fdd6cf6d789cbe 100644 (file)
@@ -606,7 +606,7 @@ t_getdate(char *buf, size_t buflen) {
 /*
  * Some generally used utilities.
  */
-struct dns_errormap {
+static const struct dns_errormap {
        isc_result_t    result;
        const char *text;
 } dns_errormap[] = {
@@ -660,8 +660,8 @@ struct 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;
 
@@ -678,7 +678,7 @@ t_dns_result_fromtext(char *name) {
        return (result);
 }
 
-struct dc_method_map {
+static const struct dc_method_map {
        unsigned int    dc_method;
        const char      *text;
 } dc_method_map[] = {
@@ -691,8 +691,8 @@ struct 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;
 
index 40c97e5870adbe7766fa21dbdbab2b57755bbccd..7fe899fb2aaf569cc90b890b507b7ab161081678 100644 (file)
@@ -18,9 +18,9 @@ use Cwd;
 
 # 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",
@@ -73,6 +73,20 @@ my @filelist = ("..\\bin\\check\\win32\\checktool.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",
@@ -111,7 +125,6 @@ my @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
                 "..\\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",
@@ -392,6 +405,26 @@ my @substdefp = ("ISC_PLATFORM_BUSYWAITNOP",
                  "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;
@@ -457,24 +490,6 @@ my @substvar = ("BIND9_VERSION",
                 "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;
@@ -856,6 +871,8 @@ if ($enable_developer eq "yes") {
     $enable_fixed_rrset = "yes";
     # TODO: dlz filesystem
     $use_tests = "yes";
+    $use_xtests = "yes";
+    $use_stests = "yes";
     $use_samples = "yes";
 }
 
@@ -1025,6 +1042,11 @@ if ($want_help ne "no") {
 # clean up and exit if requested
 if ($want_clean eq "yes") {
     my $file;
+
+    unlink($configfile);
+    unlink($platformfile);
+    unlink($confshfile);
+
     foreach $file (@filelist) {
         unlink($file);
     }
@@ -2502,13 +2524,23 @@ if ($tuning eq "large") {
     $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;
 
@@ -2523,9 +2555,9 @@ sub setupconfigh {
         }
     }
 
-    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";
@@ -2556,7 +2588,7 @@ sub setupplatformh {
 
     open F, ">" . $platformfile || die $!;
     if ($verbose) {
-        print "Setting up platform.h\n";
+        print "Setting up $platformfile\n";
     }
     foreach $line (@Lines) {
         print F $line . "\n";
@@ -2564,14 +2596,49 @@ sub setupplatformh {
     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}
@@ -2676,13 +2743,6 @@ sub setupfile {
                 } else {
                     $line = "$`$'";
                 }
-            } elsif ($1 ~~ @substtest) {
-                if (defined($configtest{$1})) {
-                    $val = kw($configtest{$1});
-                    $line = "$`$val$'";
-                } else {
-                    $line = "$`$'";
-                }
             } else {
                 die "unknown control $& in $filename\n";
             }
@@ -3122,6 +3182,15 @@ if ($verbose) {
         }
     }
 
+    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})) {
@@ -3175,6 +3244,8 @@ if (($want_win32 eq "yes") || ($want_x64 eq "yes")) {
 
     setupplatformh();
 
+    setupconfsh();
+
     my $file;
     foreach $file (@filelist) {
         setupfile($file);