mirror of
https://gitlab.isc.org/isc-projects/bind9.git
synced 2025-04-18 09:44:09 +03:00
Move the library init and shutdown to executables
Instead of relying on unreliable order of execution of the library constructors and destructors, move them to individual binaries. The advantage is that the execution time and order will remain constant and will not depend on the dynamic load dependency solver. This requires more work, but that was mitigated by a simple requirement, any executable using libisc and libdns, must include <isc/lib.h> and <dns/lib.h> respectively (in this particular order). In turn, these two headers must not be included from within any library as they contain inlined functions marked with constructor/destructor attributes.
This commit is contained in:
parent
5d0c347e75
commit
f5c204ac3e
@ -22,6 +22,7 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/dir.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
@ -30,6 +31,7 @@
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/rootns.h>
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <isc/dir.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
@ -31,6 +32,7 @@
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/master.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/name.h>
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/result.h>
|
||||
@ -40,6 +41,7 @@
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/result.h>
|
||||
@ -36,6 +37,7 @@
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/fips.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/managers.h>
|
||||
#include <isc/md.h>
|
||||
@ -59,6 +60,7 @@
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keytable.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <isc/attributes.h>
|
||||
#include <isc/dir.h>
|
||||
#include <isc/fips.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/netaddr.h>
|
||||
#include <isc/parseint.h>
|
||||
@ -33,6 +34,7 @@
|
||||
#include <dns/byaddr.h>
|
||||
#include <dns/dns64.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include <isc/attributes.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/netaddr.h>
|
||||
#include <isc/string.h>
|
||||
@ -28,6 +29,7 @@
|
||||
|
||||
#include <dns/byaddr.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/condition.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/netaddr.h>
|
||||
#include <isc/parseint.h>
|
||||
@ -30,6 +31,7 @@
|
||||
|
||||
#include <dns/byaddr.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include <isc/dir.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
@ -44,6 +45,7 @@
|
||||
#include <dns/ds.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/master.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/dir.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
@ -34,6 +35,7 @@
|
||||
#include <dns/ds.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/master.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
@ -32,6 +33,7 @@
|
||||
#include <dns/ds.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/master.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <isc/attributes.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/region.h>
|
||||
@ -31,6 +32,7 @@
|
||||
#include <dns/dnssec.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/secalg.h>
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/fips.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/region.h>
|
||||
@ -50,6 +51,7 @@
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/kasp.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/secalg.h>
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/fips.h>
|
||||
#include <isc/lex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
|
||||
#include <dns/callbacks.h>
|
||||
@ -27,6 +28,7 @@
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keymgr.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/rdatalist.h>
|
||||
#include <dns/rdataset.h>
|
||||
|
@ -23,12 +23,14 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
@ -33,6 +34,7 @@
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <isc/fips.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/managers.h>
|
||||
@ -71,6 +72,7 @@
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/kasp.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/master.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/nsec.h>
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <isc/file.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/mutex.h>
|
||||
@ -43,6 +44,7 @@
|
||||
#include <dns/ds.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keyvalues.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/master.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/nsec.h>
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include <isc/fips.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/httpd.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/managers.h>
|
||||
#include <isc/netmgr.h>
|
||||
#include <isc/os.h>
|
||||
@ -47,6 +48,7 @@
|
||||
|
||||
#include <dns/dispatch.h>
|
||||
#include <dns/dyndb.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/resolver.h>
|
||||
#include <dns/view.h>
|
||||
|
@ -7912,7 +7912,7 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
/*
|
||||
* Shut down all dyndb instances.
|
||||
*/
|
||||
dns_dyndb_cleanup(false);
|
||||
dns_dyndb_cleanup();
|
||||
|
||||
/*
|
||||
* Parse the global default pseudo-config file.
|
||||
@ -9591,7 +9591,7 @@ shutdown_server(void *arg) {
|
||||
/*
|
||||
* Shut down all dyndb instances.
|
||||
*/
|
||||
dns_dyndb_cleanup(true);
|
||||
dns_dyndb_cleanup();
|
||||
|
||||
while ((nsc = ISC_LIST_HEAD(server->cachelist)) != NULL) {
|
||||
ISC_LIST_UNLINK(server->cachelist, nsc, link);
|
||||
|
@ -97,7 +97,7 @@ typedef struct stats_dumparg {
|
||||
isc_result_t result;
|
||||
} stats_dumparg_t;
|
||||
|
||||
static isc_once_t once = ISC_ONCE_INIT;
|
||||
static isc_once_t once = ISC_ONCE_INITIALIZER;
|
||||
|
||||
#if defined(HAVE_LIBXML2) || defined(HAVE_JSON_C)
|
||||
#define EXTENDED_STATS
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <isc/getaddresses.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/managers.h>
|
||||
@ -52,6 +53,7 @@
|
||||
#include <dns/dispatch.h>
|
||||
#include <dns/dnssec.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/getaddresses.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/managers.h>
|
||||
@ -36,6 +37,7 @@
|
||||
#include <isc/thread.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
#include <isccc/alist.h>
|
||||
|
@ -24,12 +24,14 @@
|
||||
#endif
|
||||
|
||||
#include <isc/fips.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/md.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/net.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/edns.h>
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
@ -25,6 +26,7 @@
|
||||
#include <dns/db.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/journal.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <isc/base64.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/managers.h>
|
||||
@ -33,6 +34,7 @@
|
||||
|
||||
#include <dns/dispatch.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdataset.h>
|
||||
|
@ -15,12 +15,15 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/region.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
|
||||
#define DST_KEY_INTERNAL
|
||||
|
||||
#include <openssl/bn.h>
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/managers.h>
|
||||
#include <isc/mem.h>
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <strings.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/managers.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/netaddr.h>
|
||||
|
@ -18,11 +18,13 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/message.h>
|
||||
|
||||
int parseflags = 0;
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/net.h>
|
||||
|
||||
#define UNUSED(x) (void)(x)
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
@ -47,6 +48,7 @@
|
||||
|
||||
#include <dns/dnstap.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <isc/getaddresses.h>
|
||||
#include <isc/hash.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/managers.h>
|
||||
@ -41,6 +42,7 @@
|
||||
#include <dns/byaddr.h>
|
||||
#include <dns/dispatch.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/message.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
|
@ -16,12 +16,14 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/journal.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
const char *progname = NULL;
|
||||
|
@ -19,6 +19,9 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
|
||||
/* Included just to get DNS_LMDB_FLAGS definition */
|
||||
#include <dns/view.h>
|
||||
|
||||
int
|
||||
|
@ -19,12 +19,14 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/lex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdata.h>
|
||||
#include <dns/rdataclass.h>
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <isc/file.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/iterated_hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/tls.h>
|
||||
@ -30,6 +31,7 @@
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/nsec3.h>
|
||||
#include <dns/types.h>
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/string.h>
|
||||
|
@ -20,6 +20,10 @@
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include "fuzz.h"
|
||||
|
||||
#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||
|
@ -86,6 +86,7 @@ libdns_la_HEADERS = \
|
||||
include/dns/keystore.h \
|
||||
include/dns/keytable.h \
|
||||
include/dns/keyvalues.h \
|
||||
include/dns/lib.h \
|
||||
include/dns/master.h \
|
||||
include/dns/masterdump.h \
|
||||
include/dns/message.h \
|
||||
@ -153,6 +154,7 @@ libdns_la_SOURCES = \
|
||||
$(dst_HEADERS) \
|
||||
$(irs_HEADERS) \
|
||||
acl.c \
|
||||
acl_p.h \
|
||||
adb.c \
|
||||
badcache.c \
|
||||
byaddr.c \
|
||||
@ -168,6 +170,7 @@ libdns_la_SOURCES = \
|
||||
diff.c \
|
||||
dispatch.c \
|
||||
dlz.c \
|
||||
dlz_p.h \
|
||||
dns64.c \
|
||||
dnssec.c \
|
||||
ds.c \
|
||||
@ -177,6 +180,7 @@ libdns_la_SOURCES = \
|
||||
dst_parse.c \
|
||||
dst_parse.h \
|
||||
dyndb.c \
|
||||
dyndb_p.h \
|
||||
ecs.c \
|
||||
ede.c \
|
||||
fixedname.c \
|
||||
@ -192,6 +196,7 @@ libdns_la_SOURCES = \
|
||||
keymgr.c \
|
||||
keystore.c \
|
||||
keytable.c \
|
||||
lib.c \
|
||||
master.c \
|
||||
masterdump.c \
|
||||
message.c \
|
||||
|
@ -25,6 +25,8 @@
|
||||
#include <dns/acl.h>
|
||||
#include <dns/iptable.h>
|
||||
|
||||
#include "acl_p.h"
|
||||
|
||||
#define DNS_ACLENV_MAGIC ISC_MAGIC('a', 'c', 'n', 'v')
|
||||
#define VALID_ACLENV(a) ISC_MAGIC_VALID(a, DNS_ACLENV_MAGIC)
|
||||
|
||||
@ -507,15 +509,19 @@ ISC_REFCOUNT_TRACE_IMPL(dns_acl, dns__acl_destroy);
|
||||
ISC_REFCOUNT_IMPL(dns_acl, dns__acl_destroy);
|
||||
#endif
|
||||
|
||||
static isc_once_t insecure_prefix_once = ISC_ONCE_INIT;
|
||||
static isc_mutex_t insecure_prefix_lock;
|
||||
static bool insecure_prefix_found;
|
||||
|
||||
static void
|
||||
initialize_action(void) {
|
||||
void
|
||||
dns__acl_initialize(void) {
|
||||
isc_mutex_init(&insecure_prefix_lock);
|
||||
}
|
||||
|
||||
void
|
||||
dns__acl_shutdown(void) {
|
||||
isc_mutex_destroy(&insecure_prefix_lock);
|
||||
}
|
||||
|
||||
/*
|
||||
* Called via isc_radix_process() to find IP table nodes that are
|
||||
* insecure.
|
||||
@ -566,8 +572,6 @@ dns_acl_isinsecure(const dns_acl_t *a) {
|
||||
unsigned int i;
|
||||
bool insecure;
|
||||
|
||||
isc_once_do(&insecure_prefix_once, initialize_action);
|
||||
|
||||
/*
|
||||
* Walk radix tree to find out if there are any non-negated,
|
||||
* non-loopback prefixes.
|
||||
|
21
lib/dns/acl_p.h
Normal file
21
lib/dns/acl_p.h
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* 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 https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/*! \file */
|
||||
|
||||
void
|
||||
dns__acl_initialize(void);
|
||||
void
|
||||
dns__acl_shutdown(void);
|
17
lib/dns/db.c
17
lib/dns/db.c
@ -24,7 +24,6 @@
|
||||
#include <isc/hash.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/once.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/rwlock.h>
|
||||
#include <isc/string.h>
|
||||
@ -69,13 +68,12 @@ unsigned int dns_pps = 0U;
|
||||
|
||||
static ISC_LIST(dns_dbimplementation_t) implementations;
|
||||
static isc_rwlock_t implock;
|
||||
static isc_once_t once = ISC_ONCE_INIT;
|
||||
|
||||
static dns_dbimplementation_t qpimp;
|
||||
static dns_dbimplementation_t qpzoneimp;
|
||||
|
||||
static void
|
||||
initialize(void) {
|
||||
void
|
||||
dns__db_initialize(void) {
|
||||
isc_rwlock_init(&implock);
|
||||
|
||||
ISC_LIST_INIT(implementations);
|
||||
@ -96,6 +94,11 @@ initialize(void) {
|
||||
ISC_LIST_APPEND(implementations, &qpzoneimp, link);
|
||||
}
|
||||
|
||||
void
|
||||
dns__db_shutdown(void) {
|
||||
isc_rwlock_destroy(&implock);
|
||||
}
|
||||
|
||||
static dns_dbimplementation_t *
|
||||
impfind(const char *name) {
|
||||
dns_dbimplementation_t *imp;
|
||||
@ -123,8 +126,6 @@ dns_db_create(isc_mem_t *mctx, const char *db_type, const dns_name_t *origin,
|
||||
char *argv[], dns_db_t **dbp) {
|
||||
dns_dbimplementation_t *impinfo = NULL;
|
||||
|
||||
isc_once_do(&once, initialize);
|
||||
|
||||
/*
|
||||
* Create a new database using implementation 'db_type'.
|
||||
*/
|
||||
@ -831,8 +832,6 @@ dns_db_register(const char *name, dns_dbcreatefunc_t create, void *driverarg,
|
||||
REQUIRE(name != NULL);
|
||||
REQUIRE(dbimp != NULL && *dbimp == NULL);
|
||||
|
||||
isc_once_do(&once, initialize);
|
||||
|
||||
RWLOCK(&implock, isc_rwlocktype_write);
|
||||
imp = impfind(name);
|
||||
if (imp != NULL) {
|
||||
@ -861,8 +860,6 @@ dns_db_unregister(dns_dbimplementation_t **dbimp) {
|
||||
|
||||
REQUIRE(dbimp != NULL && *dbimp != NULL);
|
||||
|
||||
isc_once_do(&once, initialize);
|
||||
|
||||
imp = *dbimp;
|
||||
*dbimp = NULL;
|
||||
RWLOCK(&implock, isc_rwlocktype_write);
|
||||
|
@ -193,3 +193,11 @@ dns__db_logtoomanyrecords(dns_db_t *db, const dns_name_t *name,
|
||||
* 'maxrrperset' limit. 'op' is 'adding' or 'updating' depending on whether
|
||||
* the addition is to create a new rdataset or to merge to an existing one.
|
||||
*/
|
||||
|
||||
/*%
|
||||
* Internal dns_db constructor and destructor.
|
||||
*/
|
||||
void
|
||||
dns__db_initialize(void);
|
||||
void
|
||||
dns__db_shutdown(void);
|
||||
|
@ -60,7 +60,6 @@
|
||||
#include <isc/magic.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/netmgr.h>
|
||||
#include <isc/once.h>
|
||||
#include <isc/random.h>
|
||||
#include <isc/rwlock.h>
|
||||
#include <isc/string.h>
|
||||
@ -73,20 +72,26 @@
|
||||
#include <dns/ssu.h>
|
||||
#include <dns/zone.h>
|
||||
|
||||
#include "dlz_p.h"
|
||||
|
||||
/***
|
||||
*** Supported DLZ DB Implementations Registry
|
||||
***/
|
||||
|
||||
static ISC_LIST(dns_dlzimplementation_t) dlz_implementations;
|
||||
static isc_rwlock_t dlz_implock;
|
||||
static isc_once_t once = ISC_ONCE_INIT;
|
||||
|
||||
static void
|
||||
dlz_initialize(void) {
|
||||
void
|
||||
dns__dlz_initialize(void) {
|
||||
isc_rwlock_init(&dlz_implock);
|
||||
ISC_LIST_INIT(dlz_implementations);
|
||||
}
|
||||
|
||||
void
|
||||
dns__dlz_shutdown(void) {
|
||||
isc_rwlock_destroy(&dlz_implock);
|
||||
}
|
||||
|
||||
/*%
|
||||
* Searches the dlz_implementations list for a driver matching name.
|
||||
*/
|
||||
@ -162,12 +167,6 @@ dns_dlzcreate(isc_mem_t *mctx, const char *dlzname, const char *drivername,
|
||||
isc_result_t result;
|
||||
dns_dlzdb_t *db = NULL;
|
||||
|
||||
/*
|
||||
* initialize the dlz_implementations list, this is guaranteed
|
||||
* to only really happen once.
|
||||
*/
|
||||
isc_once_do(&once, dlz_initialize);
|
||||
|
||||
/*
|
||||
* Performs checks to make sure data is as we expect it to be.
|
||||
*/
|
||||
@ -291,12 +290,6 @@ dns_dlzregister(const char *drivername, const dns_dlzmethods_t *methods,
|
||||
REQUIRE(mctx != NULL);
|
||||
REQUIRE(dlzimp != NULL && *dlzimp == NULL);
|
||||
|
||||
/*
|
||||
* initialize the dlz_implementations list, this is guaranteed
|
||||
* to only really happen once.
|
||||
*/
|
||||
isc_once_do(&once, dlz_initialize);
|
||||
|
||||
/* lock the dlz_implementations list so we can modify it. */
|
||||
RWLOCK(&dlz_implock, isc_rwlocktype_write);
|
||||
|
||||
@ -372,12 +365,6 @@ dns_dlzunregister(dns_dlzimplementation_t **dlzimp) {
|
||||
*/
|
||||
REQUIRE(dlzimp != NULL && *dlzimp != NULL);
|
||||
|
||||
/*
|
||||
* initialize the dlz_implementations list, this is guaranteed
|
||||
* to only really happen once.
|
||||
*/
|
||||
isc_once_do(&once, dlz_initialize);
|
||||
|
||||
dlz_imp = *dlzimp;
|
||||
|
||||
/* lock the dlz_implementations list so we can modify it. */
|
||||
|
21
lib/dns/dlz_p.h
Normal file
21
lib/dns/dlz_p.h
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* 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 https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/*! \file */
|
||||
|
||||
void
|
||||
dns__dlz_initialize(void);
|
||||
void
|
||||
dns__dlz_shutdown(void);
|
@ -190,12 +190,7 @@ addsuffix(char *filename, int len, const char *dirname, const char *ofilename,
|
||||
static isc_mem_t *dst__mctx = NULL;
|
||||
|
||||
void
|
||||
dst__lib_init(void) ISC_CONSTRUCTOR;
|
||||
void
|
||||
dst__lib_destroy(void) ISC_DESTRUCTOR;
|
||||
|
||||
void
|
||||
dst__lib_init(void) {
|
||||
dst__lib_initialize(void) {
|
||||
isc_mem_create(&dst__mctx);
|
||||
|
||||
dst__hmacmd5_init(&dst_t_func[DST_ALG_HMACMD5]);
|
||||
@ -224,7 +219,7 @@ dst__lib_init(void) {
|
||||
}
|
||||
|
||||
void
|
||||
dst__lib_destroy(void) {
|
||||
dst__lib_shutdown(void) {
|
||||
for (size_t i = 0; i < DST_MAX_ALGS; i++) {
|
||||
if (dst_t_func[i] != NULL && dst_t_func[i]->cleanup != NULL) {
|
||||
dst_t_func[i]->cleanup();
|
||||
|
@ -224,4 +224,12 @@ dst_key_close(char *tmpname, FILE *fp, char *filename);
|
||||
isc_result_t
|
||||
dst_key_cleanup(char *tmpname, FILE *fp);
|
||||
|
||||
/*%
|
||||
* Library constructor and destructor.
|
||||
*/
|
||||
void
|
||||
dst__lib_initialize(void);
|
||||
void
|
||||
dst__lib_shutdown(void);
|
||||
|
||||
/*! \file */
|
||||
|
@ -11,13 +11,10 @@
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/mutex.h>
|
||||
#include <isc/once.h>
|
||||
#include <isc/region.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/types.h>
|
||||
@ -29,6 +26,8 @@
|
||||
#include <dns/view.h>
|
||||
#include <dns/zone.h>
|
||||
|
||||
#include "dyndb_p.h"
|
||||
|
||||
#define CHECK(op) \
|
||||
do { \
|
||||
result = (op); \
|
||||
@ -57,14 +56,18 @@ static LIST(dyndb_implementation_t) dyndb_implementations;
|
||||
|
||||
/* Locks dyndb_implementations. */
|
||||
static isc_mutex_t dyndb_lock;
|
||||
static isc_once_t once = ISC_ONCE_INIT;
|
||||
|
||||
static void
|
||||
dyndb_initialize(void) {
|
||||
void
|
||||
dns__dyndb_initialize(void) {
|
||||
isc_mutex_init(&dyndb_lock);
|
||||
INIT_LIST(dyndb_implementations);
|
||||
}
|
||||
|
||||
void
|
||||
dns__dyndb_shutdown(void) {
|
||||
isc_mutex_destroy(&dyndb_lock);
|
||||
}
|
||||
|
||||
static dyndb_implementation_t *
|
||||
impfind(const char *name) {
|
||||
dyndb_implementation_t *imp;
|
||||
@ -211,8 +214,6 @@ dns_dyndb_load(const char *libname, const char *name, const char *parameters,
|
||||
REQUIRE(DNS_DYNDBCTX_VALID(dctx));
|
||||
REQUIRE(name != NULL);
|
||||
|
||||
isc_once_do(&once, dyndb_initialize);
|
||||
|
||||
LOCK(&dyndb_lock);
|
||||
|
||||
/* duplicate instance names are not allowed */
|
||||
@ -239,12 +240,10 @@ cleanup:
|
||||
}
|
||||
|
||||
void
|
||||
dns_dyndb_cleanup(bool exiting) {
|
||||
dns_dyndb_cleanup(void) {
|
||||
dyndb_implementation_t *elem;
|
||||
dyndb_implementation_t *prev;
|
||||
|
||||
isc_once_do(&once, dyndb_initialize);
|
||||
|
||||
LOCK(&dyndb_lock);
|
||||
elem = TAIL(dyndb_implementations);
|
||||
while (elem != NULL) {
|
||||
@ -259,10 +258,6 @@ dns_dyndb_cleanup(bool exiting) {
|
||||
elem = prev;
|
||||
}
|
||||
UNLOCK(&dyndb_lock);
|
||||
|
||||
if (exiting) {
|
||||
isc_mutex_destroy(&dyndb_lock);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
21
lib/dns/dyndb_p.h
Normal file
21
lib/dns/dyndb_p.h
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* 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 https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/*! \file */
|
||||
|
||||
void
|
||||
dns__dyndb_initialize(void);
|
||||
void
|
||||
dns__dyndb_shutdown(void);
|
@ -117,12 +117,9 @@ dns_dyndb_load(const char *libname, const char *name, const char *parameters,
|
||||
*/
|
||||
|
||||
void
|
||||
dns_dyndb_cleanup(bool exiting);
|
||||
dns_dyndb_cleanup(void);
|
||||
/*%
|
||||
* Shut down and destroy all running dyndb modules.
|
||||
*
|
||||
* 'exiting' indicates whether the server is shutting down,
|
||||
* as opposed to merely being reconfigured.
|
||||
*/
|
||||
|
||||
void
|
||||
|
40
lib/dns/include/dns/lib.h
Normal file
40
lib/dns/include/dns/lib.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* 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 https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
void
|
||||
dns__lib_initialize(void);
|
||||
void
|
||||
dns__lib_shutdown(void);
|
||||
|
||||
void
|
||||
dns_lib_initialize(void) __attribute__((__constructor__));
|
||||
void
|
||||
dns_lib_shutdown(void) __attribute__((__destructor__));
|
||||
|
||||
void
|
||||
dns_lib_initialize(void) {
|
||||
isc__lib_initialize();
|
||||
dns__lib_initialize();
|
||||
}
|
||||
void
|
||||
dns_lib_shutdown(void) {
|
||||
dns__lib_shutdown();
|
||||
isc__lib_shutdown();
|
||||
}
|
@ -1226,7 +1226,7 @@ dst_key_setdirectory(dst_key_t *key, const char *dir);
|
||||
|
||||
const char *
|
||||
dst_hmac_algorithm_totext(dst_algorithm_t alg);
|
||||
/*$<
|
||||
/*%<
|
||||
* Return the name associtated with the HMAC algorithm 'alg'
|
||||
* or return "unknown".
|
||||
*/
|
||||
|
63
lib/dns/lib.c
Normal file
63
lib/dns/lib.c
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* 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 https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <isc/once.h>
|
||||
#include <isc/refcount.h>
|
||||
|
||||
#include "acl_p.h"
|
||||
#include "db_p.h"
|
||||
#include "dlz_p.h"
|
||||
#include "dst_internal.h"
|
||||
#include "dyndb_p.h"
|
||||
#include "qp_p.h"
|
||||
|
||||
/***
|
||||
*** Functions
|
||||
***/
|
||||
|
||||
static isc_refcount_t dns__lib_references = 0;
|
||||
|
||||
void
|
||||
dns__lib_initialize(void);
|
||||
void
|
||||
dns__lib_shutdown(void);
|
||||
|
||||
void
|
||||
dns__lib_initialize(void) {
|
||||
if (isc_refcount_increment0(&dns__lib_references) > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
dst__lib_initialize();
|
||||
dns__acl_initialize();
|
||||
dns__dlz_initialize();
|
||||
dns__db_initialize();
|
||||
dns__dyndb_initialize();
|
||||
dns__qp_initialize();
|
||||
}
|
||||
|
||||
void
|
||||
dns__lib_shutdown(void) {
|
||||
if (isc_refcount_decrement(&dns__lib_references) > 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
dns__qp_shutdown();
|
||||
dns__dyndb_shutdown();
|
||||
dns__db_shutdown();
|
||||
dns__dlz_shutdown();
|
||||
dns__acl_shutdown();
|
||||
dst__lib_shutdown();
|
||||
}
|
11
lib/dns/qp.c
11
lib/dns/qp.c
@ -135,8 +135,6 @@ uint8_t dns_qp_byte_for_bit[SHIFT_OFFSET] = { 0 };
|
||||
* Fill in the lookup tables at program startup. (It doesn't matter
|
||||
* when this is initialized relative to other startup code.)
|
||||
*/
|
||||
static void
|
||||
initialize_bits_for_byte(void) ISC_CONSTRUCTOR;
|
||||
|
||||
/*
|
||||
* The bit positions for bytes inside labels have to be between
|
||||
@ -153,8 +151,8 @@ initialize_bits_for_byte(void) ISC_CONSTRUCTOR;
|
||||
* After filling the table we ensure that the bit positions for
|
||||
* hostname characters and escape characters all fit.
|
||||
*/
|
||||
static void
|
||||
initialize_bits_for_byte(void) {
|
||||
void
|
||||
dns__qp_initialize(void) {
|
||||
/* zero common character marker not a valid shift position */
|
||||
INSIST(0 < SHIFT_BITMAP);
|
||||
/* first bit is common byte or escape byte */
|
||||
@ -193,6 +191,11 @@ initialize_bits_for_byte(void) {
|
||||
ENSURE(bit_one < SHIFT_OFFSET);
|
||||
}
|
||||
|
||||
void
|
||||
dns__qp_shutdown(void) {
|
||||
/* Nothing */
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert a DNS name into a trie lookup key.
|
||||
*
|
||||
|
@ -19,6 +19,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <dns/qp.h>
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* interior node basics
|
||||
@ -925,3 +927,8 @@ extern uint16_t dns_qp_bits_for_byte[];
|
||||
extern uint8_t dns_qp_byte_for_bit[];
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
void
|
||||
dns__qp_initialize(void);
|
||||
void
|
||||
dns__qp_shutdown(void);
|
||||
|
@ -58,7 +58,7 @@ mygetservbyname(const char *name, const char *proto, long *port) {
|
||||
|
||||
static isc_result_t
|
||||
fromtext_in_wks(ARGS_FROMTEXT) {
|
||||
static isc_once_t once = ISC_ONCE_INIT;
|
||||
static isc_once_t once = ISC_ONCE_INITIALIZER;
|
||||
isc_token_t token;
|
||||
isc_region_t region;
|
||||
struct in_addr addr;
|
||||
|
@ -42,6 +42,7 @@ libisc_la_HEADERS = \
|
||||
include/isc/iterated_hash.h \
|
||||
include/isc/job.h \
|
||||
include/isc/lex.h \
|
||||
include/isc/lib.h \
|
||||
include/isc/list.h \
|
||||
include/isc/log.h \
|
||||
include/isc/loop.h \
|
||||
|
36
lib/isc/include/isc/lib.h
Normal file
36
lib/isc/include/isc/lib.h
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* 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 https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <isc/util.h>
|
||||
|
||||
void
|
||||
isc__lib_initialize(void);
|
||||
void
|
||||
isc__lib_shutdown(void);
|
||||
|
||||
void
|
||||
isc_lib_initialize(void) __attribute__((__constructor__));
|
||||
void
|
||||
isc_lib_shutdown(void) __attribute__((__destructor__));
|
||||
|
||||
void
|
||||
isc_lib_initialize(void) {
|
||||
isc__lib_initialize();
|
||||
}
|
||||
|
||||
void
|
||||
isc_lib_shutdown(void) {
|
||||
isc__lib_shutdown();
|
||||
}
|
@ -21,7 +21,7 @@
|
||||
|
||||
typedef pthread_once_t isc_once_t;
|
||||
|
||||
#define ISC_ONCE_INIT PTHREAD_ONCE_INIT
|
||||
#define ISC_ONCE_INITIALIZER PTHREAD_ONCE_INIT
|
||||
|
||||
#define isc_once_do(op, f) \
|
||||
{ \
|
||||
|
@ -61,14 +61,6 @@
|
||||
#define ISC_NONSTRING
|
||||
#endif /* __GNUC__ */
|
||||
|
||||
#if HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR && HAVE_FUNC_ATTRIBUTE_DESTRUCTOR
|
||||
#define ISC_CONSTRUCTOR __attribute__((constructor))
|
||||
#define ISC_DESTRUCTOR __attribute__((destructor))
|
||||
#else
|
||||
#define ISC_CONSTRUCTOR
|
||||
#define ISC_DESTRUCTOR
|
||||
#endif
|
||||
|
||||
/*%
|
||||
* The opposite: silent warnings about stored values which are never read.
|
||||
*/
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <isc/md.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/os.h>
|
||||
#include <isc/refcount.h>
|
||||
#include <isc/tls.h>
|
||||
#include <isc/urcu.h>
|
||||
#include <isc/util.h>
|
||||
@ -29,21 +30,24 @@
|
||||
#include "mutex_p.h"
|
||||
#include "os_p.h"
|
||||
|
||||
#ifndef ISC_CONSTRUCTOR
|
||||
#error Either __attribute__((constructor|destructor))__ or DllMain support needed to compile BIND 9.
|
||||
#endif
|
||||
|
||||
/***
|
||||
*** Functions
|
||||
***/
|
||||
|
||||
void
|
||||
isc__initialize(void) ISC_CONSTRUCTOR;
|
||||
void
|
||||
isc__shutdown(void) ISC_DESTRUCTOR;
|
||||
static isc_refcount_t isc__lib_references = 0;
|
||||
|
||||
void
|
||||
isc__initialize(void) {
|
||||
isc__lib_initialize(void);
|
||||
void
|
||||
isc__lib_shutdown(void);
|
||||
|
||||
void
|
||||
isc__lib_initialize(void) {
|
||||
if (isc_refcount_increment0(&isc__lib_references) > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
rcu_register_thread();
|
||||
isc__os_initialize();
|
||||
isc__mutex_initialize();
|
||||
isc__mem_initialize();
|
||||
@ -54,11 +58,14 @@ isc__initialize(void) {
|
||||
isc__hash_initialize();
|
||||
isc__iterated_hash_initialize();
|
||||
(void)isc_os_ncpus();
|
||||
rcu_register_thread();
|
||||
}
|
||||
|
||||
void
|
||||
isc__shutdown(void) {
|
||||
isc__lib_shutdown(void) {
|
||||
if (isc_refcount_decrement(&isc__lib_references) > 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
isc__iterated_hash_shutdown();
|
||||
isc__xml_shutdown();
|
||||
isc__uv_shutdown();
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include <isc/magic.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/mutex.h>
|
||||
#include <isc/once.h>
|
||||
#include <isc/os.h>
|
||||
#include <isc/overflow.h>
|
||||
#include <isc/refcount.h>
|
||||
@ -112,8 +111,6 @@ struct element {
|
||||
|
||||
static ISC_LIST(isc_mem_t) contexts;
|
||||
|
||||
static isc_once_t init_once = ISC_ONCE_INIT;
|
||||
static isc_once_t shut_once = ISC_ONCE_INIT;
|
||||
static isc_mutex_t contextslock;
|
||||
|
||||
struct isc_mem {
|
||||
@ -413,8 +410,8 @@ mem_jemalloc_arena_destroy(unsigned int arenano) {
|
||||
#endif /* JEMALLOC_API_SUPPORTED */
|
||||
}
|
||||
|
||||
static void
|
||||
mem_initialize(void) {
|
||||
void
|
||||
isc__mem_initialize(void) {
|
||||
/*
|
||||
* Check if the values copied from jemalloc still match
|
||||
*/
|
||||
@ -427,12 +424,7 @@ mem_initialize(void) {
|
||||
}
|
||||
|
||||
void
|
||||
isc__mem_initialize(void) {
|
||||
isc_once_do(&init_once, mem_initialize);
|
||||
}
|
||||
|
||||
static void
|
||||
mem_shutdown(void) {
|
||||
isc__mem_shutdown(void) {
|
||||
bool empty;
|
||||
|
||||
isc__mem_checkdestroyed();
|
||||
@ -446,11 +438,6 @@ mem_shutdown(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
isc__mem_shutdown(void) {
|
||||
isc_once_do(&shut_once, mem_shutdown);
|
||||
}
|
||||
|
||||
static void
|
||||
mem_create(isc_mem_t **ctxp, unsigned int debugging, unsigned int flags,
|
||||
unsigned int jemalloc_flags) {
|
||||
|
@ -28,10 +28,9 @@
|
||||
#include "mutex_p.h"
|
||||
|
||||
pthread_mutexattr_t isc__mutex_init_attr;
|
||||
static isc_once_t init_once = ISC_ONCE_INIT;
|
||||
|
||||
static void
|
||||
mutex_initialize(void) {
|
||||
void
|
||||
isc__mutex_initialize(void) {
|
||||
RUNTIME_CHECK(pthread_mutexattr_init(&isc__mutex_init_attr) == 0);
|
||||
#if ISC_MUTEX_ERROR_CHECK
|
||||
RUNTIME_CHECK(pthread_mutexattr_settype(&isc__mutex_init_attr,
|
||||
@ -43,11 +42,6 @@ mutex_initialize(void) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
isc__mutex_initialize(void) {
|
||||
isc_once_do(&init_once, mutex_initialize);
|
||||
}
|
||||
|
||||
void
|
||||
isc__mutex_shutdown(void) {
|
||||
/* noop */;
|
||||
|
@ -17,9 +17,12 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <isc/ascii.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/random.h>
|
||||
#include <isc/time.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
|
||||
#define SIZE (1024 * 1024)
|
||||
|
||||
typedef void
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/time.h>
|
||||
@ -25,6 +26,7 @@
|
||||
|
||||
#include <dns/compress.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
static void
|
||||
|
@ -17,12 +17,14 @@
|
||||
|
||||
#include <isc/ascii.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/random.h>
|
||||
#include <isc/time.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/compress.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
#include "old.h"
|
||||
|
@ -17,9 +17,11 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <isc/iterated_hash.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/random.h>
|
||||
#include <isc/time.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
static void
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <isc/file.h>
|
||||
#include <isc/hashmap.h>
|
||||
#include <isc/ht.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/list.h>
|
||||
#include <isc/refcount.h>
|
||||
#include <isc/rwlock.h>
|
||||
@ -26,6 +27,7 @@
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/qp.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
|
@ -17,10 +17,12 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/ht.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/rwlock.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/qp.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
|
@ -17,11 +17,13 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/ht.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/rwlock.h>
|
||||
#include <isc/time.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/qp.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include <isc/async.h>
|
||||
#include <isc/barrier.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/list.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/loop.h>
|
||||
@ -37,6 +38,7 @@
|
||||
#include <isc/util.h>
|
||||
#include <isc/uv.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/qp.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <isc/ascii.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/random.h>
|
||||
#include <isc/siphash.h>
|
||||
#include <isc/time.h>
|
||||
|
@ -24,10 +24,12 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/acl.h>
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/md.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/os.h>
|
||||
@ -38,6 +39,7 @@
|
||||
#include <dns/badcache.h>
|
||||
#include <dns/compress.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdatatype.h>
|
||||
|
||||
|
@ -22,9 +22,12 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/dbiterator.h>
|
||||
#include <dns/journal.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdatalist.h>
|
||||
|
||||
|
@ -23,11 +23,13 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/dbiterator.h>
|
||||
#include <dns/journal.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
@ -23,10 +23,12 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/dbiterator.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/file.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/serial.h>
|
||||
#include <isc/stdtime.h>
|
||||
@ -31,6 +32,7 @@
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/nsec3.h>
|
||||
#include <dns/rdatalist.h>
|
||||
#include <dns/rdataset.h>
|
||||
|
@ -24,7 +24,10 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
|
||||
#include <dns/diff.h>
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/managers.h>
|
||||
#include <isc/refcount.h>
|
||||
#include <isc/tls.h>
|
||||
@ -32,6 +33,7 @@
|
||||
#include <isc/uv.h>
|
||||
|
||||
#include <dns/dispatch.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/view.h>
|
||||
|
||||
|
@ -23,12 +23,14 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/netaddr.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/dns64.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/rdata.h>
|
||||
#include <dns/rdatalist.h>
|
||||
#include <dns/rdataset.h>
|
||||
|
@ -28,11 +28,13 @@
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/file.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/dnstap.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/view.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
@ -33,11 +33,14 @@
|
||||
#include <isc/file.h>
|
||||
#include <isc/fips.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include <dst/dst.h>
|
||||
|
||||
#include "dst_internal.h"
|
||||
|
@ -24,9 +24,11 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/list.h>
|
||||
|
||||
#include <dns/ede.h>
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include "../../lib/dns/ede.c"
|
||||
|
||||
|
@ -26,11 +26,13 @@
|
||||
#include <maxminddb.h>
|
||||
|
||||
#include <isc/dir.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/geoip.h>
|
||||
#include <dns/lib.h>
|
||||
|
||||
#include "geoip2.c"
|
||||
|
||||
|
@ -26,11 +26,13 @@
|
||||
|
||||
#include <isc/base64.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/md.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/keytable.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/nta.h>
|
||||
#include <dns/rdataclass.h>
|
||||
|
@ -25,12 +25,14 @@
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/dir.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/cache.h>
|
||||
#include <dns/callbacks.h>
|
||||
#include <dns/db.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/master.h>
|
||||
#include <dns/masterdump.h>
|
||||
#include <dns/name.h>
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/os.h>
|
||||
#include <isc/thread.h>
|
||||
@ -33,6 +34,7 @@
|
||||
|
||||
#include <dns/compress.h>
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
@ -26,10 +26,12 @@
|
||||
|
||||
#include <isc/base64.h>
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/md.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/fixedname.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/nametree.h>
|
||||
|
||||
|
@ -23,10 +23,12 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/nsec3.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
@ -24,11 +24,13 @@
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/lib.h>
|
||||
#include <dns/nsec3.h>
|
||||
|
||||
#include "zone_p.h"
|
||||
|
@ -24,8 +24,10 @@
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/nsec3.h>
|
||||
#include <dns/private.h>
|
||||
#include <dns/rdataclass.h>
|
||||
|
@ -23,6 +23,7 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/random.h>
|
||||
#include <isc/refcount.h>
|
||||
#include <isc/result.h>
|
||||
@ -30,6 +31,7 @@
|
||||
#include <isc/urcu.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/name.h>
|
||||
#include <dns/qp.h>
|
||||
|
||||
|
@ -23,8 +23,10 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/rdatalist.h>
|
||||
#include <dns/rdataset.h>
|
||||
#include <dns/rdatastruct.h>
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/assertions.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/loop.h>
|
||||
#include <isc/magic.h>
|
||||
@ -33,6 +34,7 @@
|
||||
#include <isc/urcu.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/qp.h>
|
||||
#include <dns/types.h>
|
||||
|
||||
|
@ -23,8 +23,10 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/qp.h>
|
||||
#include <dns/rdatalist.h>
|
||||
#include <dns/rdataset.h>
|
||||
|
@ -30,10 +30,12 @@
|
||||
#include <isc/commandline.h>
|
||||
#include <isc/hex.h>
|
||||
#include <isc/lex.h>
|
||||
#include <isc/lib.h>
|
||||
#include <isc/stdio.h>
|
||||
#include <isc/types.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/rdata.h>
|
||||
|
||||
#include "../isc/openssl_shim.c"
|
||||
|
@ -23,8 +23,10 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/rdataset.h>
|
||||
#include <dns/rdatastruct.h>
|
||||
|
||||
|
@ -24,8 +24,10 @@
|
||||
#define UNIT_TESTING
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <isc/lib.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/lib.h>
|
||||
#include <dns/stats.h>
|
||||
|
||||
#include <tests/dns.h>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user