]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Make the usage of libxml2 opaque to the caller
authorOndřej Surý <ondrej@sury.org>
Mon, 24 Jun 2019 12:25:55 +0000 (14:25 +0200)
committerOndřej Surý <ondrej@sury.org>
Tue, 25 Jun 2019 10:01:32 +0000 (12:01 +0200)
The libxml2 have previously leaked into the global namespace leading
to forced -I<include_path> for every compilation unit using isc/xml.h
header.  This MR fixes the usage making the caller object opaque.

63 files changed:
bin/check/Makefile.in
bin/confgen/Makefile.in
bin/delv/Makefile.in
bin/dig/Makefile.in
bin/dnssec/Makefile.in
bin/named/Makefile.in
bin/named/include/named/server.h
bin/named/main.c
bin/named/server.c
bin/named/statschannel.c
bin/nsupdate/Makefile.in
bin/pkcs11/Makefile.in
bin/plugins/Makefile.in
bin/rndc/Makefile.in
bin/tests/Makefile.in
bin/tests/optional/Makefile.in
bin/tests/pkcs11/Makefile.in
bin/tests/pkcs11/benchmarks/Makefile.in
bin/tests/system/Makefile.in
bin/tests/system/conf.sh.in
bin/tests/system/dyndb/driver/Makefile.in
bin/tests/system/pipelined/Makefile.in
bin/tests/system/rndc/Makefile.in
bin/tests/system/rpz/Makefile.in
bin/tests/system/rsabigexponent/Makefile.in
bin/tests/system/tkey/Makefile.in
bin/tools/Makefile.in
config.h.in
configure
configure.ac
contrib/dlz/bin/dlzbdb/Makefile.in
fuzz/Makefile.in
lib/bind9/Makefile.in
lib/dns/Makefile.in
lib/dns/cache.c
lib/dns/include/dns/cache.h
lib/dns/tests/Makefile.in
lib/dns/tests/master_test.c
lib/irs/tests/Makefile.in
lib/isc/Makefile.in
lib/isc/include/isc/Makefile.in
lib/isc/include/isc/mem.h
lib/isc/include/isc/socket.h
lib/isc/include/isc/task.h
lib/isc/include/isc/xml.h [deleted file]
lib/isc/mem.c
lib/isc/task.c
lib/isc/tests/Makefile.in
lib/isc/unix/Makefile.in
lib/isc/unix/socket.c
lib/isc/win32/libisc.vcxproj.filters.in
lib/isc/win32/libisc.vcxproj.in
lib/isc/win32/socket.c
lib/isccc/Makefile.in
lib/isccc/tests/Makefile.in
lib/isccfg/Makefile.in
lib/isccfg/tests/Makefile.in
lib/ns/Makefile.in
lib/ns/tests/Makefile.in
lib/samples/Makefile-postinstall.in
lib/samples/Makefile.in
make/rules.in
util/copyrights

index 04e0af788c14a8cf4467bedc2a969f1239a8b507..7f9e95c2fea6ac68df8fc0cbc174a5d13c3c2200 100644 (file)
@@ -23,8 +23,8 @@ CWARNINGS =
 
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 NSLIBS =       ../../lib/ns/libns.@A@
 
index 383f651294bf7f85bcfdc65f60642fcf711225f2..da8c4effde2b54ca4b1364264d6cbc9dbf329aa8 100644 (file)
@@ -27,8 +27,8 @@ CWARNINGS =
 
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 
index 3253b207145d9f31c701cc6e5feb31eec34cfa1f..ec34e5d952c891b4d03605bf30ad9d4f1682a233 100644 (file)
@@ -24,8 +24,8 @@ CWARNINGS =
 
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 IRSLIBS =      ../../lib/irs/libirs.@A@
 
 ISCCFGDEPLIBS =        ../../lib/isccfg/libisccfg.@A@
index d80a2b28389bbafcb675d7fdef0e67372881e459..9c0a4733742a91970680f6907c0d6b0834f50d85 100644 (file)
@@ -27,8 +27,8 @@ CWARNINGS =
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 IRSLIBS =      ../../lib/irs/libirs.@A@
 
 ISCCFGDEPLIBS =        ../../lib/isccfg/libisccfg.@A@
index e67cba9eb2a3a6e4e38b8058d56c72ea3a19cbc4..3559b717d7d9a292ccdeb477253458877773af64 100644 (file)
@@ -21,8 +21,8 @@ CDEFINES =    -DVERSION=\"${VERSION}\"
 CWARNINGS =
 
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
index 6cb812ba0dc05d2235dfcd56886206e8e9a9e2cb..d870e450c71837263c5a8bd5d213a2c7a89281b3 100644 (file)
@@ -46,7 +46,8 @@ CINCLUDES =   -I${srcdir}/include -I${srcdir}/unix/include -I. \
                ${NS_INCLUDES} ${DNS_INCLUDES} \
                ${BIND9_INCLUDES} ${ISCCFG_INCLUDES} ${ISCCC_INCLUDES} \
                ${ISC_INCLUDES} ${DLZDRIVER_INCLUDES} \
-               ${DBDRIVER_INCLUDES} @OPENSSL_INCLUDES@ @JSON_C_CFLAGS@
+               ${DBDRIVER_INCLUDES} @OPENSSL_INCLUDES@ @JSON_C_CFLAGS@ \
+               ${LIBXML2_CFLAGS}
 
 CDEFINES =      @CONTRIB_DLZ@
 
@@ -55,8 +56,8 @@ CWARNINGS =
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 NSLIBS =       ../../lib/ns/libns.@A@
 
index 25d0e4b755edc5cb85a4de1c1fce2862533e879d..84432019088dcd14246d432e0635d6ff6385da90 100644 (file)
@@ -22,7 +22,6 @@
 #include <isc/quota.h>
 #include <isc/sockaddr.h>
 #include <isc/types.h>
-#include <isc/xml.h>
 
 #include <dns/acl.h>
 #include <dns/dnstap.h>
index 92cd24c9fc5ac523f3008fa83c6f992371c0301d..83af0e13e8eb2eecc9a36ff00edfd2b5a18a1c64 100644 (file)
@@ -79,6 +79,7 @@
 #include <openssl/crypto.h>
 #ifdef HAVE_LIBXML2
 #include <libxml/xmlversion.h>
+#include <libxml/parser.h>
 #endif
 #ifdef HAVE_ZLIB
 #include <zlib.h>
index b0019af6b89606aa3e27bb382adeed999d8e05ed..febe8a4b183e011422bd065fb2e69923f909d7eb 100644 (file)
@@ -47,7 +47,6 @@
 #include <isc/task.h>
 #include <isc/timer.h>
 #include <isc/util.h>
-#include <isc/xml.h>
 
 #include <isccfg/grammar.h>
 #include <isccfg/namedconf.h>
index 7d9be5d489707b386d79ec04f324bfe6e7abf129..3e99c625528d38a9803f3607ce947e283b94cff5 100644 (file)
 #include <named/server.h>
 #include <named/statschannel.h>
 
+#if HAVE_LIBXML2
+#include <libxml/xmlwriter.h>
+#define ISC_XMLCHAR (const xmlChar *)
+#endif /* HAVE_LIBXML2 */
+
 #include "bind9.xsl.h"
 
 struct named_statschannel {
@@ -1067,7 +1072,7 @@ dump_counters(isc_stats_t *stats, isc_statsformat_t type, void *arg,
        stats_dumparg_t dumparg;
        FILE *fp;
 #ifdef HAVE_LIBXML2
-       xmlTextWriterPtr writer;
+       void *writer;
        int xmlrc;
 #endif
 #ifdef HAVE_JSON_C
@@ -1113,7 +1118,7 @@ dump_counters(isc_stats_t *stats, isc_statsformat_t type, void *arg,
                        break;
                case isc_statsformat_xml:
 #ifdef HAVE_LIBXML2
-                       writer = (xmlTextWriterPtr) arg;
+                       writer = arg;
 
                        if (category != NULL) {
                                /* <NameOfCategory> */
@@ -1187,7 +1192,7 @@ rdtypestat_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
        stats_dumparg_t *dumparg = arg;
        FILE *fp;
 #ifdef HAVE_LIBXML2
-       xmlTextWriterPtr writer;
+       void *writer;
        int xmlrc;
 #endif
 #ifdef HAVE_JSON_C
@@ -1253,7 +1258,7 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
        bool nxrrset = false;
        bool stale = false;
 #ifdef HAVE_LIBXML2
-       xmlTextWriterPtr writer;
+       void *writer;
        int xmlrc;
 #endif
 #ifdef HAVE_JSON_C
@@ -1337,7 +1342,7 @@ opcodestat_dump(dns_opcode_t code, uint64_t val, void *arg) {
        char codebuf[64];
        stats_dumparg_t *dumparg = arg;
 #ifdef HAVE_LIBXML2
-       xmlTextWriterPtr writer;
+       void *writer;
        int xmlrc;
 #endif
 #ifdef HAVE_JSON_C
@@ -1394,7 +1399,7 @@ rcodestat_dump(dns_rcode_t code, uint64_t val, void *arg) {
        char codebuf[64];
        stats_dumparg_t *dumparg = arg;
 #ifdef HAVE_LIBXML2
-       xmlTextWriterPtr writer;
+       void *writer;
        int xmlrc;
 #endif
 #ifdef HAVE_JSON_C
index 4c7515a456757f849e688b1eeae8bb03d097b116..9d4c4fd1e0ccbabb7ef560c80f05078c09625ad3 100644 (file)
@@ -28,8 +28,8 @@ CWARNINGS =
 
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 IRSLIBS =      ../../lib/irs/libirs.@A@
 
index 11556dcb028e49d205d1a4c9fcc943173bdef61d..060ae4d6e929392e3a5aaafee8d1dc76b09110b7 100644 (file)
@@ -17,7 +17,7 @@ CINCLUDES =   ${ISC_INCLUDES} @JSON_C_CFLAGS@
 
 CDEFINES =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
 
index 00ceb4675557bece039db18be60b1a284a9992f4..f9d10f281b360ba48eac2717f947749aa862d7f1 100644 (file)
@@ -19,7 +19,7 @@ CINCLUDES =   -I${srcdir}/include -I${srcdir}/unix/include -I. \
 
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 NSLIBS =       ../../lib/ns/libns.@A@
 
 LIBS =
index 3e453ea140861595d2af722bb6fb66cfb1bc036f..60d162eeb5655415a57e2e50b0a19fde315e04a4 100644 (file)
@@ -23,8 +23,8 @@ CWARNINGS =
 
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
 
index b35b0ecc170daecf27b19a03d974c59bed30ec77..5a88c0a45304c43013e33ba3471c280e05523318 100644 (file)
@@ -21,8 +21,8 @@ CWARNINGS =
 BACKTRACECFLAGS = @BACKTRACECFLAGS@
 
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
index e5eeaca807a4c49aacb291683f98f15c2faf17d4..0ea2850588018e27d695b82311c48733400e9553 100644 (file)
@@ -23,8 +23,8 @@ BACKTRACECFLAGS = @BACKTRACECFLAGS@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
 
 DNSLIBS =      ../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCCFGLIBS =   ../../../lib/isccfg/libisccfg.@A@
 
 DNSDEPLIBS =   ../../../lib/dns/libdns.@A@
index 848816292eb6ddc1e37335b41f07401fc6273da3..012d1f52b93a1c5fa8a6d577c8b4f25e6464b88f 100644 (file)
@@ -16,7 +16,7 @@ top_srcdir =  @top_srcdir@
 CINCLUDES =    ${ISC_INCLUDES}
 CDEFINES =
 
-ISCLIBS =      ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 LIBS =         ${ISCLIBS} @LIBS@
 
index 94ebff48fb4f86902eaa7d7741ccd70bd8b683b6..99617ffe566eaf8bedc1bb33b6bfe2c356372665 100644 (file)
@@ -16,7 +16,7 @@ top_srcdir =  @top_srcdir@
 CINCLUDES =    ${ISC_INCLUDES}
 CDEFINES =
 
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 LIBS =         ${ISCLIBS} @LIBS@
 
index 21c92fff27d7c0ea2ea1d3de5a172118e956921b..73be90eb82cc5b5bad08f074eaf378a760baef66 100644 (file)
@@ -23,7 +23,7 @@ CDEFINES =    @USE_GSSAPI@ @CONTRIB_DLZ@
 CWARNINGS =
 
 DNSLIBS =
-ISCLIBS =      ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =
 ISCDEPLIBS =
index ff48313fbb49868056d2cd1abc0a03b42a3ccb4b..818661062bc3fc883886aedeeafd56a3a2c0e79f 100644 (file)
@@ -111,7 +111,8 @@ PYTHON=@PYTHON@
 #
 # Determine if we support various optional features.
 #
-HAVEXMLSTATS=@XMLSTATS@
+LIBXML2_LIBS="@LIBXML2_LIBS@"
+HAVEXMLSTATS=${LIBXML2_LIBS:+1}
 JSON_C_LIBS="@JSON_C_LIBS@"
 HAVEJSONSTATS=${JSON_C_LIBS:+1}
 ZLIB=@ZLIB@
index 7d4922a9fe947b74f1a7a0b6fa3c7b04d8af2ce0..510bceaf18aa79921d50361a62e44c2cc9bb024e 100644 (file)
@@ -19,7 +19,7 @@ CDEFINES =
 CWARNINGS =
 
 DNSLIBS =      ../../../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =   ../../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../../lib/isc/libisc.@A@
index 25ac24fbc16d745831de620c1104d76afb8c7d83..296e0ef624f9d8d42fe3579fd206ffe1375dd5a3 100644 (file)
@@ -21,7 +21,7 @@ CDEFINES =
 CWARNINGS =
 
 DNSLIBS =      ../../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =   ../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
index e2fb4464e45cba9b07888b5c7040e13a61d17504..dc85d978b781a31fe99253a999b4e03200cf0782 100644 (file)
@@ -20,7 +20,7 @@ CINCLUDES =   ${ISC_INCLUDES}
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
index d7835884daa92c65c65af81f94ac88a55d5a4e48..17460169dcb081d8ae0604b77813b2c8aa93a774 100644 (file)
@@ -21,7 +21,7 @@ CDEFINES =
 CWARNINGS =
 
 DNSLIBS =
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =
 ISCDEPLIBS =    ../../../../lib/isc/libisc.@A@
index dd0f71b4c66a39798604280bf0d99e06f41af4c6..251b3c55ef9d717dae62e1751c64c3b1c5f959b4 100644 (file)
@@ -21,7 +21,7 @@ CDEFINES =
 CWARNINGS =
 
 DNSLIBS =      ../../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =   ../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
index c7e2330e8f01d4f5bd8ec5c16c2d335bd8a94e3b..e95da42895ab4837ff6f14ca25ef49878fee6ee5 100644 (file)
@@ -21,7 +21,7 @@ CDEFINES =
 CWARNINGS =
 
 DNSLIBS =      ../../../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DNSDEPLIBS =   ../../../../lib/dns/libdns.@A@
 ISCDEPLIBS =   ../../../../lib/isc/libisc.@A@
index c2f8c16b67e2f15c469c3c585ebc69425f77ad9f..f3127ed75413f9df8f00b636f015b8771e723f9d 100644 (file)
@@ -23,8 +23,8 @@ CWARNINGS =
 
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 BIND9LIBS =    ../../lib/bind9/libbind9.@A@
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
-ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
+ISCNOSYMLIBS = ../../lib/isc/libisc-nosymtbl.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCCFGLIBS =   ../../lib/isccfg/libisccfg.@A@
 
 DNSDEPLIBS =   ../../lib/dns/libdns.@A@
index 817fd003e5a72a52457a851e1c8e67f29c48fcae..be91c71e815052ef4afc53794c8080505bedd944 100644 (file)
 /* Define to 1 if you have the `socket' library (-lsocket). */
 #undef HAVE_LIBSOCKET
 
-/* Define if libxml2 was found */
+/* Use libxml2 library */
 #undef HAVE_LIBXML2
 
 /* Define to 1 if you have the <linux/netlink.h> header file. */
index 038696f64220389d585922ec61e3e06c0abb5c18..e7dce69f64f8827dafc8c9d5ad7748ff3a7a021a 100755 (executable)
--- a/configure
+++ b/configure
@@ -728,7 +728,8 @@ MKDEPCC
 ZLIB
 JSON_C_LIBS
 JSON_C_CFLAGS
-XMLSTATS
+LIBXML2_LIBS
+LIBXML2_CFLAGS
 NZDTARGETS
 NZDSRCS
 NZD_TOOLS
@@ -964,6 +965,8 @@ PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
 OPENSSL_CFLAGS
 OPENSSL_LIBS
+LIBXML2_CFLAGS
+LIBXML2_LIBS
 JSON_C_CFLAGS
 JSON_C_LIBS
 LIBIDN2_CFLAGS
@@ -1653,7 +1656,8 @@ Optional Packages:
                           Specify path for system-supplied GSSAPI
                           [default=auto]
   --with-lmdb=PATH        build with LMDB library [yes|no|path]
-  --with-libxml2=PATH     build with libxml2 library [yes|no|path]
+  --with-libxml2          build with libxml2 library [yes|no|auto] (default is
+                          auto)
   --with-libjson          deprecated, use --with-json-c
   --with-json-c           build with json-c library [yes|no|detect] (default
                           is detect)
@@ -1710,6 +1714,10 @@ Some influential environment variables:
               C compiler flags for OPENSSL, overriding pkg-config
   OPENSSL_LIBS
               linker flags for OPENSSL, overriding pkg-config
+  LIBXML2_CFLAGS
+              C compiler flags for LIBXML2, overriding pkg-config
+  LIBXML2_LIBS
+              linker flags for LIBXML2, overriding pkg-config
   JSON_C_CFLAGS
               C compiler flags for JSON_C, overriding pkg-config
   JSON_C_LIBS linker flags for JSON_C, overriding pkg-config
@@ -12653,8 +12661,6 @@ fi
 #
 # expanded_sysconfdir is needed for replacement in the python utilities
 #
-# TODO: use sed in the Makefile instead of autoconf to do the replacement
-#
 expanded_sysconfdir=`eval echo $sysconfdir`
 
 
 #
 # was --with-libxml2 specified?
 #
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2 library" >&5
-$as_echo_n "checking for libxml2 library... " >&6; }
 
 # Check whether --with-libxml2 was given.
 if test "${with_libxml2+set}" = set; then :
-  withval=$with_libxml2; use_libxml2="$withval"
+  withval=$with_libxml2;
 else
-  use_libxml2="auto"
+  with_libxml2="auto"
 fi
 
 
-case "$use_libxml2" in
-       no)
-               DST_LIBXML2_INC=""
-               ;;
-       auto|yes)
-               case X`(xml2-config --version) 2>/dev/null` in
-               X2.[6789].*)
-                       libxml2_libs=`xml2-config --libs`
-                       libxml2_cflags=`xml2-config --cflags`
-                       ;;
-               *)
-                       if test "yes" = "$use_libxml2" ; then
-                               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+case $with_libxml2 in #(
+  no) :
+     ;; #(
+  auto) :
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.6.0" >&5
+$as_echo_n "checking for libxml-2.0 >= 2.6.0... " >&6; }
+
+if test -n "$LIBXML2_CFLAGS"; then
+    pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.6.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LIBXML2_LIBS"; then
+    pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.6.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-                               as_fn_error $? "required libxml2 version not available" "$LINENO" 5
-                       else
-                               libxml2_libs=
-                               libxml2_cflags=
-                       fi
-                       ;;
-               esac
-               ;;
-       *)
-               if test -f "$use_libxml2/bin/xml2-config" ; then
-                       libxml2_libs=`$use_libxml2/bin/xml2-config --libs`
-                       libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags`
-               fi
-               ;;
-esac
 
-if test "X$libxml2_libs" != "X"
-then
-       CFLAGS="$CFLAGS $libxml2_cflags"
-       LIBS="$LIBS $libxml2_libs"
-       #
-       # Sanity check xml2-config output.
-       #
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <libxml/xmlwriter.h>
-int
-main ()
-{
-return(xmlTextWriterStartElement(NULL, NULL));
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
 else
-  as_fn_error $? "xml2-config returns badness" "$LINENO" 5
+        _pkg_short_errors_supported=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+        if test $_pkg_short_errors_supported = yes; then
+               LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0 >= 2.6.0" 2>&1`
+        else
+               LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0 >= 2.6.0" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LIBXML2_PKG_ERRORS" >&5
+
+       :
+elif test $pkg_failed = untried; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       :
+else
+       LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS
+       LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
 $as_echo "#define HAVE_LIBXML2 1" >>confdefs.h
 
-       XMLSTATS=1
+fi ;; #(
+  yes) :
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.6.0" >&5
+$as_echo_n "checking for libxml-2.0 >= 2.6.0... " >&6; }
+
+if test -n "$LIBXML2_CFLAGS"; then
+    pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.6.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
 else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LIBXML2_LIBS"; then
+    pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.6.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
 fi
+        if test $_pkg_short_errors_supported = yes; then
+               LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0 >= 2.6.0" 2>&1`
+        else
+               LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0 >= 2.6.0" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LIBXML2_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (libxml-2.0 >= 2.6.0) were not met:
+
+$LIBXML2_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables LIBXML2_CFLAGS
+and LIBXML2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables LIBXML2_CFLAGS
+and LIBXML2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
 
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS
+       LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define HAVE_LIBXML2 1" >>confdefs.h
+
+fi ;; #(
+  *) :
+    as_fn_error $? "Specifying libxml2 installation path is not supported, adjust PKG_CONFIG_PATH instead" "$LINENO" 5 ;;
+esac
 
 #
 # DEPRECATED
index 4744433c2fce3d820c67629cc18e8789ee012f5e..812b0e1b2fcaeafb8270a76b51647624c6a48af3 100644 (file)
@@ -1260,58 +1260,19 @@ AC_SUBST(NZDTARGETS)
 #
 # was --with-libxml2 specified?
 #
-AC_MSG_CHECKING(for libxml2 library)
-AC_ARG_WITH(libxml2,
-           AS_HELP_STRING([--with-libxml2[=PATH]],
-                          [build with libxml2 library [yes|no|path]]),
-    use_libxml2="$withval", use_libxml2="auto")
+AC_ARG_WITH([libxml2],
+           [AS_HELP_STRING([--with-libxml2],
+                           [build with libxml2 library [yes|no|auto] (default is auto)])],
+           [], [with_libxml2="auto"])
 
-case "$use_libxml2" in
-       no)
-               DST_LIBXML2_INC=""
-               ;;
-       auto|yes)
-               case X`(xml2-config --version) 2>/dev/null` in
-               X2.[[6789]].*)
-                       libxml2_libs=`xml2-config --libs`
-                       libxml2_cflags=`xml2-config --cflags`
-                       ;;
-               *)
-                       if test "yes" = "$use_libxml2" ; then
-                               AC_MSG_RESULT(no)
-                               AC_MSG_ERROR(required libxml2 version not available)
-                       else
-                               libxml2_libs=
-                               libxml2_cflags=
-                       fi
-                       ;;
-               esac
-               ;;
-       *)
-               if test -f "$use_libxml2/bin/xml2-config" ; then
-                       libxml2_libs=`$use_libxml2/bin/xml2-config --libs`
-                       libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags`
-               fi
-               ;;
-esac
-
-if test "X$libxml2_libs" != "X"
-then
-       CFLAGS="$CFLAGS $libxml2_cflags"
-       LIBS="$LIBS $libxml2_libs"
-       #
-       # Sanity check xml2-config output.
-       #
-       AC_TRY_LINK([#include <libxml/xmlwriter.h>],
-                   [return(xmlTextWriterStartElement(NULL, NULL));],
-                   AC_MSG_RESULT(yes),
-                   AC_MSG_ERROR(xml2-config returns badness))
-       AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 was found])
-       XMLSTATS=1
-else
-       AC_MSG_RESULT(no)
-fi
-AC_SUBST(XMLSTATS)
+AS_CASE([$with_libxml2],
+       [no],[],
+       [auto],[PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.0],
+                                 [AC_DEFINE([HAVE_LIBXML2], [1], [Use libxml2 library])],
+                                 [:])],
+       [yes],[PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.0],
+                                [AC_DEFINE([HAVE_LIBXML2], [1], [Use libxml2 library])])],
+       [AC_MSG_ERROR([Specifying libxml2 installation path is not supported, adjust PKG_CONFIG_PATH instead])])
 
 #
 # DEPRECATED
index 0dcf434cff402a503ed41518925fa98f4919f15e..f6de035197b8c0f7178151973376ffae87d2b264 100644 (file)
@@ -21,7 +21,7 @@ CDEFINES =      @CONTRIB_DLZ@
 CWARNINGS =
 
 DLZLIBS =      @DLZ_DRIVER_LIBS@
-ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 DEPLIBS =      ${ISCDEPLIBS}
 
index 6bc7dd7de8cabc051cbabaacda2ab61406b1e5ff..0ce63817eb6e2d688ca302b059033fdc4c6ecd2f 100644 (file)
@@ -9,7 +9,7 @@ CINCLUDES =     -I. -I.. ${DNS_INCLUDES} ${ISC_INCLUDES} \
                @OPENSSL_INCLUDES@ @JSON_C_CFLAGS@
 CDEFINES =     -DFUZZDIR=\"$(abs_srcdir)\"
 
-ISCLIBS =      ../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCDEPLIBS =   ../lib/isc/libisc.@A@
 DNSLIBS =      ../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 DNSDEPLIBS =   ../lib/dns/libdns.@A@
index ff6069ccde23b6fef14d521fd397a709f96beaf7..759417df9ae61fb14e4b9e218d5058f9f1d16534 100644 (file)
@@ -23,7 +23,7 @@ CINCLUDES =   -I. ${BIND9_INCLUDES} ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCCFGLIBS =    ../../lib/isccfg/libisccfg.@A@
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 NSLIBS =       ../../lib/ns/libns.@A@
index 55b354bcd8cfd39a247cc8488d19fc9568cb5bff..0142658cc03bf4ae810eff0ac7d0726b67f48ade 100644 (file)
@@ -27,13 +27,14 @@ VERSION=@BIND9_VERSION@
 USE_ISC_SPNEGO = @USE_ISC_SPNEGO@
 
 CINCLUDES =    -I. -I${top_srcdir}/lib/dns -Iinclude ${DNS_INCLUDES} \
-               ${ISC_INCLUDES} @OPENSSL_INCLUDES@ @DST_GSSAPI_INC@ @JSON_C_CFLAGS@
+               ${ISC_INCLUDES} @OPENSSL_INCLUDES@ @DST_GSSAPI_INC@ @JSON_C_CFLAGS@ \
+               ${LIBXML2_CFLAGS}
 
 CDEFINES =     @USE_GSSAPI@ ${USE_ISC_SPNEGO}
 
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
 
index c795c5a0574a0052bdca28d18fcf7fbedfd20360..034cbe72bddb639e3bc0e8ddd2c1be8d17f7a6af 100644 (file)
@@ -25,7 +25,6 @@
 #include <isc/time.h>
 #include <isc/timer.h>
 #include <isc/util.h>
-#include <isc/xml.h>
 
 #include <dns/cache.h>
 #include <dns/db.h>
 #include <dns/result.h>
 #include <dns/stats.h>
 
+#ifdef HAVE_LIBXML2
+#include <libxml/xmlwriter.h>
+#define ISC_XMLCHAR (const xmlChar *)
+#endif /* HAVE_LIBXML2 */
+
 #include "rbtdb.h"
 
 #define CACHE_MAGIC            ISC_MAGIC('$', '$', '$', '$')
@@ -1355,10 +1359,11 @@ error:
 }
 
 int
-dns_cache_renderxml(dns_cache_t *cache, xmlTextWriterPtr writer) {
+dns_cache_renderxml(dns_cache_t *cache, void *writer0) {
        int indices[dns_cachestatscounter_max];
        uint64_t values[dns_cachestatscounter_max];
        int xmlrc;
+       xmlTextWriterPtr writer = (xmlTextWriterPtr)writer0;
 
        REQUIRE(VALID_CACHE(cache));
 
index 68667c7fe16247a8fdd79159421d1f9993b17272..dfcbabbff931b7240b20d84014f1a8d89491bf06 100644 (file)
@@ -321,7 +321,7 @@ dns_cache_updatestats(dns_cache_t *cache, isc_result_t result);
 
 #ifdef HAVE_LIBXML2
 int
-dns_cache_renderxml(dns_cache_t *cache, xmlTextWriterPtr writer);
+dns_cache_renderxml(dns_cache_t *cache, void *writer0);
 /*
  * Render cache statistics and status in XML for 'writer'.
  */
index ec949e3d211ef002c5345f8d0b4e4526dbf72409..f2c0a115c43b06d403fe85bf0c1c9a96e93b249e 100644 (file)
@@ -19,7 +19,7 @@ CINCLUDES =   -I. -Iinclude ${DNS_INCLUDES} ${ISC_INCLUDES} \
                @OPENSSL_INCLUDES@ @CMOCKA_CFLAGS@ @JSON_C_CFLAGS@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/dns/tests/\""
 
-ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCDEPLIBS =   ../../isc/libisc.@A@
 DNSLIBS =      ../libdns.@A@ @DNS_CRYPTO_LIBS@
 DNSDEPLIBS =   ../libdns.@A@
index e6ae11281eaaf6ffb075bb7b67666871c97675db..73a0e64be2d92566895249cda226de0e86cab173 100644 (file)
@@ -27,7 +27,6 @@
 
 #include <isc/print.h>
 #include <isc/string.h>
-#include <isc/xml.h>
 
 #include <dns/cache.h>
 #include <dns/callbacks.h>
index bc7df554cc29ea220e369f58649ae4fabb8e5711..c800afebd37a350038e89d6999c2988ab3f0f501 100644 (file)
@@ -22,7 +22,7 @@ CFGLIBS =     ../../isccfg/libisccfg.@A@
 CFGDEPLIBS =   ../../isccfg/libisccfg.@A@
 DNSLIBS =      ../../dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 DNSDEPLIBS =   ../../dns/libdns.@A@
-ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCDEPLIBS =   ../../isc/libisc.@A@
 IRSLIBS =      ../libirs.@A@
 IRSDEPLIBS =   ../libirs.@A@
index 07ad791be04b0d749c496eed046aa3ca75c5bec2..49e0854e1a4056989b2451c2912ea6ace4f022d1 100644 (file)
@@ -20,7 +20,8 @@ VERSION=@BIND9_VERSION@
 CINCLUDES =    -I${srcdir}/unix/include \
                -I${srcdir}/pthreads/include \
                -I./include \
-               -I${srcdir}/include ${DNS_INCLUDES} @OPENSSL_INCLUDES@ @JSON_C_CFLAGS@
+               -I${srcdir}/include ${DNS_INCLUDES} @OPENSSL_INCLUDES@ @JSON_C_CFLAGS@ \
+               ${LIBXML2_CFLAGS}
 CDEFINES =
 CWARNINGS =
 
index 2e1cb4ab22b8c43eb45bc7e8a285c9df906c9f3a..b431437742cf9f74f467de4fce1dae76f56f8122 100644 (file)
@@ -33,8 +33,7 @@ HEADERS =     aes.h app.h assertions.h atomic.h backtrace.h \
                region.h resource.h result.h resultclass.h rwlock.h \
                safe.h serial.h siphash.h sockaddr.h socket.h \
                stats.h stdio.h strerr.h string.h symtab.h \
-               task.h taskpool.h timer.h tm.h types.h util.h version.h \
-               xml.h
+               task.h taskpool.h timer.h tm.h types.h util.h version.h
 
 SUBDIRS =
 TARGETS =
index ac757729c07cfa2f3307c49fcce29bc0a71b87a7..0fdd0f267f3e41b5a9ea86ec9a2b7165964bd182 100644 (file)
@@ -22,7 +22,6 @@
 #include <isc/mutex.h>
 #include <isc/platform.h>
 #include <isc/types.h>
-#include <isc/xml.h>
 
 ISC_LANG_BEGINDECLS
 
@@ -467,7 +466,7 @@ isc_mem_gettag(isc_mem_t *ctx);
 
 #ifdef HAVE_LIBXML2
 int
-isc_mem_renderxml(xmlTextWriterPtr writer);
+isc_mem_renderxml(void *writer0);
 /*%<
  * Render all contexts' statistics and status in XML for writer.
  */
index db765b9b79a97e245bee91669a180546ae5088e3..b09a757f7aef20e2b5cde2f9970a1d7f7c30a1d5 100644 (file)
@@ -60,7 +60,6 @@
 #include <isc/sockaddr.h>
 #include <isc/time.h>
 #include <isc/types.h>
-#include <isc/xml.h>
 
 ISC_LANG_BEGINDECLS
 
@@ -1017,7 +1016,7 @@ isc_socket_hasreuseport(void);
 
 #ifdef HAVE_LIBXML2
 int
-isc_socketmgr_renderxml(isc_socketmgr_t *mgr, xmlTextWriterPtr writer);
+isc_socketmgr_renderxml(isc_socketmgr_t *mgr, void *writer0);
 /*%<
  * Render internal statistics and other state into the XML document.
  */
index ebb8640507a08570579ca469333e8e1f7a356daf..9e75638948a9fa0537e4bd69c6b79aab9d296045 100644 (file)
@@ -80,7 +80,6 @@
 #include <isc/lang.h>
 #include <isc/stdtime.h>
 #include <isc/types.h>
-#include <isc/xml.h>
 
 #define ISC_TASKEVENT_FIRSTEVENT       (ISC_EVENTCLASS_TASK + 0)
 #define ISC_TASKEVENT_SHUTDOWN         (ISC_EVENTCLASS_TASK + 1)
@@ -763,7 +762,7 @@ isc_taskmgr_excltask(isc_taskmgr_t *mgr, isc_task_t **taskp);
 
 #ifdef HAVE_LIBXML2
 int
-isc_taskmgr_renderxml(isc_taskmgr_t *mgr, xmlTextWriterPtr writer);
+isc_taskmgr_renderxml(isc_taskmgr_t *mgr, void *writer0);
 #endif
 
 #ifdef HAVE_JSON_C
diff --git a/lib/isc/include/isc/xml.h b/lib/isc/include/isc/xml.h
deleted file mode 100644 (file)
index a091d30..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * 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/.
- *
- * See the COPYRIGHT file distributed with this work for additional
- * information regarding copyright ownership.
- */
-
-
-#ifndef ISC_XML_H
-#define ISC_XML_H 1
-
-/*
- * This file is here mostly to make it easy to add additional libxml header
- * files as needed across all the users of this file.  Rather than place
- * these libxml includes in each file, one include makes it easy to handle
- * the ifdef as well as adding the ability to add additional functions
- * which may be useful.
- */
-
-#ifdef HAVE_LIBXML2
-#include <libxml/encoding.h>
-#include <libxml/xmlwriter.h>
-#endif
-
-#define ISC_XMLCHAR (const xmlChar *)
-
-#define ISC_XML_RENDERCONFIG           0x00000001 /* render config data */
-#define ISC_XML_RENDERSTATS            0x00000002 /* render stats */
-#define ISC_XML_RENDERALL              0x000000ff /* render everything */
-
-#endif /* ISC_XML_H */
index 66be78505781403487db3953bb58343972cecf34..962ef4a4bc7c919fb1b856e7bbf1ffc549e6692b 100644 (file)
 #include <isc/strerr.h>
 #include <isc/string.h>
 #include <isc/util.h>
-#include <isc/xml.h>
+
+#ifdef HAVE_LIBXML2
+#include <libxml/xmlwriter.h>
+#define ISC_XMLCHAR (const xmlChar *)
+#endif /* HAVE_LIBXML2 */
 
 #include "mem_p.h"
 
@@ -2141,11 +2145,12 @@ xml_renderctx(isc__mem_t *ctx, summarystat_t *summary,
 }
 
 int
-isc_mem_renderxml(xmlTextWriterPtr writer) {
+isc_mem_renderxml(void *writer0) {
        isc__mem_t *ctx;
        summarystat_t summary;
        uint64_t lost;
        int xmlrc;
+       xmlTextWriterPtr writer = (xmlTextWriterPtr)writer0;
 
        memset(&summary, 0, sizeof(summary));
 
index 7bfce3be6361991d72f7f9652bfb0eb2b2e2d472..da391e67afe8d5d51980b13718b77e4e63005150 100644 (file)
 #include <isc/thread.h>
 #include <isc/time.h>
 #include <isc/util.h>
-#include <isc/xml.h>
+
+#ifdef HAVE_LIBXML2
+#include <libxml/xmlwriter.h>
+#define ISC_XMLCHAR (const xmlChar *)
+#endif /* HAVE_LIBXML2 */
 
 #ifdef OPENSSL_LEAKS
 #include <openssl/err.h>
@@ -1666,10 +1670,11 @@ isc_task_exiting(isc_task_t *t) {
 #ifdef HAVE_LIBXML2
 #define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0)
 int
-isc_taskmgr_renderxml(isc_taskmgr_t *mgr0, xmlTextWriterPtr writer) {
+isc_taskmgr_renderxml(isc_taskmgr_t *mgr0, void *writer0) {
        isc__taskmgr_t *mgr = (isc__taskmgr_t *)mgr0;
        isc__task_t *task = NULL;
        int xmlrc;
+       xmlTextWriterPtr writer = (xmlTextWriterPtr)writer0;
 
        LOCK(&mgr->lock);
 
index 9b8ef1bb3822fcc63b2920222a5875abe05e5ba5..83f5a40a165d2fb2f3423bd8cc95c9124335962c 100644 (file)
@@ -18,7 +18,7 @@ VERSION=@BIND9_VERSION@
 CINCLUDES =    -I. -Iinclude ${ISC_INCLUDES} @OPENSSL_INCLUDES@ @CMOCKA_CFLAGS@ @JSON_C_CFLAGS@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/isc/tests/\""
 
-ISCLIBS =      ../libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCDEPLIBS =   ../libisc.@A@
 
 LIBS =         @LIBS@ @CMOCKA_LIBS@ @JSON_C_LIBS@
index c138a60e42b3ce764437a52dc9bbc540b5db6018..f02a0109f70b55bc37efba9626480f4dc7d13877 100644 (file)
@@ -15,7 +15,8 @@ CINCLUDES =   -I${srcdir}/include \
                -I${srcdir}/../pthreads/include \
                -I../include \
                -I${srcdir}/../include \
-               -I${srcdir}/.. @OPENSSL_INCLUDES@ @JSON_C_CFLAGS@
+               -I${srcdir}/.. @OPENSSL_INCLUDES@ @JSON_C_CFLAGS@ \
+               ${LIBXML2_CFLAGS}
 
 CDEFINES =
 CWARNINGS =
index d0e43c15bede2b0ef23149da0d0366c192bdbe10..3befd28724a6380698deb393b4f53754d7b00c08 100644 (file)
@@ -58,7 +58,6 @@
 #include <isc/task.h>
 #include <isc/thread.h>
 #include <isc/util.h>
-#include <isc/xml.h>
 
 #ifdef ISC_PLATFORM_HAVESYSUNH
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #endif
 
+#ifdef HAVE_LIBXML2
+#include <libxml/xmlwriter.h>
+#define ISC_XMLCHAR (const xmlChar *)
+#endif /* HAVE_LIBXML2 */
+
 /*%
  * Choose the most preferable multiplex method.
  */
@@ -5412,13 +5416,14 @@ _socktype(isc_sockettype_t type)
 #ifdef HAVE_LIBXML2
 #define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0)
 int
-isc_socketmgr_renderxml(isc_socketmgr_t *mgr0, xmlTextWriterPtr writer) {
+isc_socketmgr_renderxml(isc_socketmgr_t *mgr0, void *writer0) {
        isc__socketmgr_t *mgr = (isc__socketmgr_t *)mgr0;
        isc__socket_t *sock = NULL;
        char peerbuf[ISC_SOCKADDR_FORMATSIZE];
        isc_sockaddr_t addr;
        socklen_t len;
        int xmlrc;
+       xmlTextWriterPtr writer = (xmlTextWriterPtr)writer0;
 
        LOCK(&mgr->lock);
 
index 95f5f2bdd3c07380c447cbd6e04fae0ff984abd3..c84e27c76aaedb55f12dae426342ef7e0763ff2a 100644 (file)
     <ClInclude Include="..\include\isc\version.h">
       <Filter>Library Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\include\isc\xml.h">
-      <Filter>Library Header Files</Filter>
-    </ClInclude>
 @IF PKCS11
     <ClInclude Include="..\include\pk11\constants.h">
       <Filter>Library Header Files</Filter>
index ee67ba54a1240db4f8b312b21ffbc93468c55e85..0d5aa96709757c90b7656d9b1974b3b771dcb55f 100644 (file)
@@ -373,7 +373,6 @@ copy InstallFiles ..\Build\Release\
     <ClInclude Include="..\include\isc\types.h" />
     <ClInclude Include="..\include\isc\util.h" />
     <ClInclude Include="..\include\isc\version.h" />
-    <ClInclude Include="..\include\isc\xml.h" />
 @IF PKCS11
     <ClInclude Include="..\include\pk11\constants.h" />
     <ClInclude Include="..\include\pk11\internal.h" />
index 053edba775b21fac557350ea8b6705a2417bde00..b1e26c33d3fd81717e595065ae730d83acd8a168 100644 (file)
 
 #include <mswsock.h>
 
+#ifdef HAVE_LIBXML2
+#include <libxml/xmlwriter.h>
+#define ISC_XMLCHAR (const xmlChar *)
+#endif /* HAVE_LIBXML2 */
+
 #include "errno2result.h"
 
 /*
@@ -3630,13 +3635,14 @@ _socktype(isc_sockettype_t type) {
 
 #define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0)
 int
-isc_socketmgr_renderxml(isc_socketmgr_t *mgr, xmlTextWriterPtr writer)
+isc_socketmgr_renderxml(isc_socketmgr_t *mgr, void *writer0)
 {
        isc_socket_t *sock = NULL;
        char peerbuf[ISC_SOCKADDR_FORMATSIZE];
        isc_sockaddr_t addr;
        socklen_t len;
        int xmlrc;
+       xmlTextWriterPtr writer = (xmlTextWriterPtr)writer0;
 
        LOCK(&mgr->lock);
 
index cad75e2aa020f611218ebd6443ae7b0f2e069704..3ce1a2d26b63bbbb290f50ddcabfc95843bac48d 100644 (file)
@@ -23,7 +23,7 @@ CINCLUDES =   -I. ${DNS_INCLUDES} ${ISC_INCLUDES} \
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCCCLIBS =    ../../lib/isccc/libisccc.@A@
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
index c3029edd1958544a3279e994b84a12823dfe1b16..4519652cc800a53da4392d82fbe9d1b92303a79a 100644 (file)
@@ -22,7 +22,7 @@ VERSION=@BIND9_VERSION@
 CINCLUDES =    -I. -Iinclude ${ISCCC_INCLUDES} ${ISC_INCLUDES} @CMOCKA_CFLAGS@ @JSON_C_CFLAGS@
 CDEFINES =
 
-ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCDEPLIBS =   ../../isc/libisc.@A@
 ISCCCLIBS =    ../libisccc.@A@
 ISCCCDEPLIBS = ../libisccc.@A@
index 9d00b1199050b269067e029039c9d352feba946d..8e573840ed84bffba396f0604c137920f28d2185 100644 (file)
@@ -22,7 +22,7 @@ CINCLUDES =   -I. ${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCFG_INCLUDES} @JSON_C_CFLAG
 CDEFINES =
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 DNSLIBS =      ../../lib/dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 ISCCFGLIBS =   ../../lib/cfg/libisccfg.@A@
 
index abadec2a63f31bcad875ee06ba701469913a3dd5..c8a55a596972614da404aa42b932d1dc87f5832a 100644 (file)
@@ -20,7 +20,7 @@ CINCLUDES =   -I. -Iinclude \
                @OPENSSL_INCLUDES@ @CMOCKA_CFLAGS@ @JSON_C_CFLAGS@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/dns/tests/\""
 
-ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCDEPLIBS =   ../../isc/libisc.@A@
 DNSLIBS =      ../../dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 DNSDEPLIBS =   ../../dns/libdns.@A@
index 9ed155738722d7aff63e0dd0381e0642223ef163..8230b9ffd1164179e18814954851f38da38bf586 100644 (file)
@@ -32,7 +32,7 @@ CDEFINES =    -DNAMED_PLUGINDIR=\"${plugindir}\"
 
 CWARNINGS =
 
-ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../lib/isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 
 ISCDEPLIBS =   ../../lib/isc/libisc.@A@
 
index b12c7cea1ea6b093c09e50a7cf99e445d052ab8b..f48414d28eea3df02b1413789ffd594aeb5b2577 100644 (file)
@@ -19,7 +19,7 @@ CINCLUDES =   -I. -Iinclude ${NS_INCLUDES} ${DNS_INCLUDES} ${ISC_INCLUDES} \
                @OPENSSL_INCLUDES@ @CMOCKA_CFLAGS@ @JSON_C_CFLAGS@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/ns/tests/\"" -DNAMED_PLUGINDIR=\"${plugindir}\"
 
-ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../../isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 ISCDEPLIBS =   ../../isc/libisc.@A@
 DNSLIBS =      ../../dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 DNSDEPLIBS =   ../../dns/libdns.@A@
index 142ffc3fbda0113da19813b127f34d3c57d9c7f2..8992ced646e2b05c06f6208cae624d022c594f02 100644 (file)
@@ -15,7 +15,7 @@ CDEFINES =
 CWARNINGS =
 
 DNSLIBS =      -ldns @DNS_CRYPTO_LIBS@
-ISCLIBS =      -lisc @OPENSSL_LIBS@
+ISCLIBS =      -lisc @OPENSSL_LIBS@ @LIBXML2_LIBS@
 ISCCFGLIBS =   -lisccfg
 IRSLIBS =      -lirs
 
index 839607665cce1e614b3f3663c6f4fb09d16ec235..f39bfedb63195e0fe13b83e23114ce73632ddb42 100644 (file)
@@ -24,7 +24,7 @@ CDEFINES =    -DVERSION=\"${VERSION}\" \
                -DSYSCONFDIR=\"${sysconfdir}\"
 CWARNINGS =
 
-ISCLIBS =      ../isc/libisc.@A@ @OPENSSL_LIBS@
+ISCLIBS =      ../isc/libisc.@A@ @OPENSSL_LIBS@ ${LIBXML2_LIBS}
 DNSLIBS =      ../dns/libdns.@A@ @DNS_CRYPTO_LIBS@
 ISCCFGLIBS =   ../isccfg/libisccfg.@A@
 IRSLIBS =      ../irs/libirs.@A@
index 03e1fde18a8ab9d8e9c4fc5a1bc0adb41344aba3..2347c86089a3e3814b5947eae784fb917518d6e3 100644 (file)
@@ -120,6 +120,9 @@ LFS_CFLAGS = @LFS_CFLAGS@
 LFS_LDFLAGS = @LFS_LDFLAGS@
 LFS_LIBS = @LFS_LIBS@
 
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+
 .SUFFIXES:
 .SUFFIXES: .c .@O@
 
index 0161d7c0e03979cbcd78a7465778deddc16e0e72..6b46406881313abd42dd7f843a34408b9c063d11 100644 (file)
 ./lib/isc/include/isc/types.h                  C       1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2012,2013,2014,2016,2017,2018,2019
 ./lib/isc/include/isc/util.h                   C       1998,1999,2000,2001,2004,2005,2006,2007,2010,2011,2012,2015,2016,2017,2018,2019
 ./lib/isc/include/isc/version.h                        C       2001,2004,2005,2006,2007,2016,2018,2019
-./lib/isc/include/isc/xml.h                    C       2006,2007,2016,2018,2019
 ./lib/isc/include/pk11/constants.h             C       2014,2016,2017,2018,2019
 ./lib/isc/include/pk11/internal.h              C       2014,2016,2018,2019
 ./lib/isc/include/pk11/pk11.h                  C       2014,2016,2018,2019