1
0
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:
Ondřej Surý 2025-02-04 13:17:31 +01:00
parent 5d0c347e75
commit f5c204ac3e
No known key found for this signature in database
GPG Key ID: 2820F37E873DEA41
163 changed files with 535 additions and 116 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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);

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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;

View File

@ -13,6 +13,7 @@
#include <stdio.h>
#include <isc/lib.h>
#include <isc/net.h>
#define UNUSED(x) (void)(x)

View File

@ -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>

View File

@ -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>

View File

@ -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;

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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 \

View File

@ -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
View 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);

View File

@ -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);

View File

@ -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);

View File

@ -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
View 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);

View File

@ -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();

View File

@ -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 */

View 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
View 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);

View File

@ -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
View 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();
}

View File

@ -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
View 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();
}

View File

@ -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.
*

View File

@ -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);

View File

@ -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;

View File

@ -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
View 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();
}

View File

@ -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) \
{ \

View File

@ -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.
*/

View File

@ -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();

View File

@ -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) {

View File

@ -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 */;

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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>

View File

@ -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