TEST_PARALLEL_JOBS: 6
CONFIGURE: ./configure
- CLANG: clang-13
- SCAN_BUILD: scan-build-13
- ASAN_SYMBOLIZER_PATH: /usr/lib/llvm-13/bin/llvm-symbolizer
- CLANG_FORMAT: clang-format-13
+ CLANG: clang-14
+ SCAN_BUILD: scan-build-14
+ ASAN_SYMBOLIZER_PATH: /usr/lib/llvm-14/bin/llvm-symbolizer
+ CLANG_FORMAT: clang-format-14
CFLAGS_COMMON: -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 -g -Wall -Wextra
# Pass run-time flags to AddressSanitizer to get core dumps on error.
ASAN_OPTIONS: abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1
- TSAN_OPTIONS_COMMON: "disable_coredump=0 second_deadlock_stack=1 history_size=7 log_exe_name=true log_path=tsan external_symbolizer_path=/usr/lib/llvm-12/bin/llvm-symbolizer"
+ TSAN_OPTIONS_COMMON: "disable_coredump=0 second_deadlock_stack=1 history_size=7 log_exe_name=true log_path=tsan external_symbolizer_path=/usr/lib/llvm-14/bin/llvm-symbolizer"
TARBALL_COMPRESSOR: xz
TARBALL_EXTENSION: xz
isc_buffer_t namebuf;
isc_buffer_t onamebuf;
isc_buffer_t renderbuf;
- char *sendspace;
- dns_name_t *name;
+ char *sendspace;
+ dns_name_t *name;
isc_interval_t interval;
- dns_message_t *sendmsg;
- dns_name_t *oname;
+ dns_message_t *sendmsg;
+ dns_name_t *oname;
ISC_LINK(dig_lookup_t) link;
ISC_LIST(dig_query_t) q;
ISC_LIST(dig_query_t) connecting;
- dig_query_t *current_query;
+ dig_query_t *current_query;
dig_serverlist_t my_server_list;
dig_searchlist_t *origin;
- dig_query_t *xfr_q;
+ dig_query_t *xfr_q;
uint32_t retries;
int nsfound;
int16_t udpsize;
uint32_t ixfr_serial;
isc_buffer_t rdatabuf;
char rdatastore[MXNAME];
- dst_context_t *tsigctx;
- isc_buffer_t *querysig;
+ dst_context_t *tsigctx;
+ isc_buffer_t *querysig;
uint32_t msgcounter;
dns_fixedname_t fdomain;
- isc_sockaddr_t *ecs_addr;
- char *cookie;
- dns_ednsopt_t *ednsopts;
+ isc_sockaddr_t *ecs_addr;
+ char *cookie;
+ dns_ednsopt_t *ednsopts;
unsigned int ednsoptscnt;
isc_dscp_t dscp;
unsigned int ednsflags;
showsearch, yaml;
extern in_port_t port;
extern unsigned int timeout;
-extern isc_mem_t *mctx;
+extern isc_mem_t *mctx;
extern int sendcount;
extern int ndots;
extern int lookup_counter;
extern char keysecret[MXNAME];
extern const dns_name_t *hmacname;
extern unsigned int digestbits;
-extern dns_tsigkey_t *tsigkey;
+extern dns_tsigkey_t *tsigkey;
extern bool validated;
-extern isc_taskmgr_t *taskmgr;
-extern isc_task_t *global_task;
+extern isc_taskmgr_t *taskmgr;
+extern isc_task_t *global_task;
extern bool free_now;
extern bool debugging, debugtiming, memdebugging;
extern bool keep_open;
* Routines to be defined in dig.c, host.c, and nslookup.c. and
* then assigned to the appropriate function pointer
*/
-extern isc_result_t (*dighost_printmessage)(dig_query_t *query,
+extern isc_result_t (*dighost_printmessage)(dig_query_t *query,
const isc_buffer_t *msgbuf,
dns_message_t *msg, bool headers);
*/
struct named_server {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
ns_server_t *sctx;
* */
/* Server data structures. */
- dns_loadmgr_t *loadmgr;
- dns_zonemgr_t *zonemgr;
+ dns_loadmgr_t *loadmgr;
+ dns_zonemgr_t *zonemgr;
dns_viewlist_t viewlist;
dns_kasplist_t kasplist;
ns_interfacemgr_t *interfacemgr;
- dns_db_t *in_roothints;
+ dns_db_t *in_roothints;
isc_timer_t *interface_timer;
isc_timer_t *heartbeat_timer;
isc_stats_t *resolverstats; /*% Resolver stats */
isc_stats_t *sockstats; /*%< Socket stats */
- named_controls_t *controls; /*%< Control channels */
+ named_controls_t *controls; /*%< Control channels */
unsigned int dispatchgen;
named_dispatchlist_t dispatches;
named_statschannellist_t statschannels;
dns_tsigkey_t *sessionkey;
- char *session_keyfile;
- dns_name_t *session_keyname;
+ char *session_keyfile;
+ dns_name_t *session_keyname;
unsigned int session_keyalg;
uint16_t session_keybits;
bool interface_auto;
* special tokens are %zone%, %record%, %client%
*/
struct query_segment {
- void *sql;
+ void *sql;
unsigned int strlen;
bool direct;
ISC_LINK(query_segment_t) link;
char *zone;
char *record;
char *client;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
isc_mutex_t instance_lock;
ISC_LINK(dbinstance_t) link;
};
* special tokens are %zone%, %record%, %client%
*/
struct query_segment {
- void *cmd;
+ void *cmd;
unsigned int strlen;
bool direct;
DLZ_LINK(query_segment_t) link;
do { \
union { \
const void *k; \
- void *v; \
+ void *v; \
} _u; \
_u.k = konst; \
var = _u.v; \
#endif /* ifdef ISC_PLATFORM_HAVESYSUNH */
} type;
unsigned int length;
- void *link;
+ void *link;
} isc_sockaddr_t;
typedef struct isc_netaddr {
#define DNS_CLIENTINFO_VERSION 3
typedef struct dns_clientinfo {
uint16_t version;
- void *data;
- void *dbversion;
+ void *data;
+ void *dbversion;
dns_ecs_t ecs;
} dns_clientinfo_t;
typedef isc_result_t (*dns_clientinfo_sourceip_t)(dns_clientinfo_t *client,
- isc_sockaddr_t **addrp);
+ isc_sockaddr_t **addrp);
typedef isc_result_t (*dns_clientinfo_version_t)(dns_clientinfo_t *client,
- void **addrp);
+ void **addrp);
#define DNS_CLIENTINFOMETHODS_VERSION 2
#define DNS_CLIENTINFOMETHODS_AGE 1
struct dns_acl {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
isc_refcount_t refcount;
- dns_iptable_t *iptable;
+ dns_iptable_t *iptable;
dns_aclelement_t *elements;
bool has_negatives;
unsigned int alloc; /*%< Elements allocated */
unsigned int length; /*%< Elements initialized */
- char *name; /*%< Temporary use only */
+ char *name; /*%< Temporary use only */
ISC_LINK(dns_acl_t) nextincache; /*%< Ditto */
};
int name_bucket;
unsigned int flags;
dns_adbname_t *adbname;
- dns_adb_t *adb;
+ dns_adb_t *adb;
isc_event_t event;
ISC_LINK(dns_adbfind_t) plink;
};
* to pass back information obtained from the file header
*/
dns_rawdatafunc_t rawdata;
- dns_zone_t *zone;
+ dns_zone_t *zone;
/*%
* dns_load_master / dns_rdata_fromtext call this to issue a error.
/* xxxwpk TODO config! */
typedef isc_result_t (*dns_catz_zoneop_fn_t)(dns_catz_entry_t *entry,
dns_catz_zone_t *origin,
- dns_view_t *view,
- isc_taskmgr_t *taskmgr,
- void *udata);
+ dns_view_t *view,
+ isc_taskmgr_t *taskmgr,
+ void *udata);
struct dns_catz_zonemodmethods {
dns_catz_zoneop_fn_t addzone;
dns_catz_zoneop_fn_t modzone;
dns_catz_zoneop_fn_t delzone;
- void *udata;
+ void *udata;
};
isc_result_t
*/
typedef struct dns_clientinfo {
uint16_t version;
- void *data;
- void *dbversion;
+ void *data;
+ void *dbversion;
dns_ecs_t ecs;
} dns_clientinfo_t;
typedef isc_result_t (*dns_clientinfo_sourceip_t)(dns_clientinfo_t *client,
- isc_sockaddr_t **addrp);
+ isc_sockaddr_t **addrp);
#define DNS_CLIENTINFOMETHODS_VERSION 2
#define DNS_CLIENTINFOMETHODS_AGE 1
typedef struct dns_dbmethods {
void (*attach)(dns_db_t *source, dns_db_t **targetp);
void (*detach)(dns_db_t **dbp);
- isc_result_t (*beginload)(dns_db_t *db,
+ isc_result_t (*beginload)(dns_db_t *db,
dns_rdatacallbacks_t *callbacks);
isc_result_t (*endload)(dns_db_t *db, dns_rdatacallbacks_t *callbacks);
isc_result_t (*serialize)(dns_db_t *db, dns_dbversion_t *version,
FILE *file);
isc_result_t (*dump)(dns_db_t *db, dns_dbversion_t *version,
- const char *filename,
+ const char *filename,
dns_masterformat_t masterformat);
void (*currentversion)(dns_db_t *db, dns_dbversion_t **versionp);
isc_result_t (*newversion)(dns_db_t *db, dns_dbversion_t **versionp);
isc_result_t (*findzonecut)(dns_db_t *db, const dns_name_t *name,
unsigned int options, isc_stdtime_t now,
dns_dbnode_t **nodep, dns_name_t *foundname,
- dns_name_t *dcname,
+ dns_name_t *dcname,
dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset);
void (*attachnode)(dns_db_t *db, dns_dbnode_t *source,
dns_rdataset_t *rdataset,
dns_rdataset_t *sigrdataset);
isc_result_t (*allrdatasets)(dns_db_t *db, dns_dbnode_t *node,
- dns_dbversion_t *version,
+ dns_dbversion_t *version,
isc_stdtime_t now,
dns_rdatasetiter_t **iteratorp);
isc_result_t (*addrdataset)(dns_db_t *db, dns_dbnode_t *node,
dns_rdataset_t *addedrdataset);
isc_result_t (*subtractrdataset)(dns_db_t *db, dns_dbnode_t *node,
dns_dbversion_t *version,
- dns_rdataset_t *rdataset,
+ dns_rdataset_t *rdataset,
unsigned int options,
- dns_rdataset_t *newrdataset);
+ dns_rdataset_t *newrdataset);
isc_result_t (*deleterdataset)(dns_db_t *db, dns_dbnode_t *node,
dns_dbversion_t *version,
dns_rdatatype_t type,
isc_result_t (*getoriginnode)(dns_db_t *db, dns_dbnode_t **nodep);
void (*transfernode)(dns_db_t *db, dns_dbnode_t **sourcep,
dns_dbnode_t **targetp);
- isc_result_t (*getnsec3parameters)(dns_db_t *db,
+ isc_result_t (*getnsec3parameters)(dns_db_t *db,
dns_dbversion_t *version,
dns_hash_t *hash, uint8_t *flags,
- uint16_t *iterations,
+ uint16_t *iterations,
unsigned char *salt,
- size_t *salt_len);
+ size_t *salt_len);
isc_result_t (*findnsec3node)(dns_db_t *db, const dns_name_t *name,
bool create, dns_dbnode_t **nodep);
isc_result_t (*setsigningtime)(dns_db_t *db, dns_rdataset_t *rdataset,
isc_result_t (*findnodeext)(dns_db_t *db, const dns_name_t *name,
bool create,
dns_clientinfomethods_t *methods,
- dns_clientinfo_t *clientinfo,
- dns_dbnode_t **nodep);
+ dns_clientinfo_t *clientinfo,
+ dns_dbnode_t **nodep);
isc_result_t (*findext)(dns_db_t *db, const dns_name_t *name,
dns_dbversion_t *version, dns_rdatatype_t type,
unsigned int options, isc_stdtime_t now,
dns_dbnode_t **nodep, dns_name_t *foundname,
dns_clientinfomethods_t *methods,
- dns_clientinfo_t *clientinfo,
- dns_rdataset_t *rdataset,
- dns_rdataset_t *sigrdataset);
+ dns_clientinfo_t *clientinfo,
+ dns_rdataset_t *rdataset,
+ dns_rdataset_t *sigrdataset);
isc_result_t (*setcachestats)(dns_db_t *db, isc_stats_t *stats);
size_t (*hashsize)(dns_db_t *db);
isc_result_t (*nodefullname)(dns_db_t *db, dns_dbnode_t *node,
isc_result_t (*adjusthashsize)(dns_db_t *db, size_t size);
} dns_dbmethods_t;
-typedef isc_result_t (*dns_dbcreatefunc_t)(isc_mem_t *mctx,
+typedef isc_result_t (*dns_dbcreatefunc_t)(isc_mem_t *mctx,
const dns_name_t *name,
dns_dbtype_t type,
dns_rdataclass_t rdclass,
uint16_t attributes;
dns_rdataclass_t rdclass;
dns_name_t origin;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
ISC_LIST(dns_dbonupdatelistener_t) update_listeners;
};
struct dns_dbonupdatelistener {
dns_dbupdate_callback_t onupdate;
- void *onupdate_arg;
+ void *onupdate_arg;
ISC_LINK(dns_dbonupdatelistener_t) link;
};
/* Unlocked. */
unsigned int magic;
dns_dbiteratormethods_t *methods;
- dns_db_t *db;
+ dns_db_t *db;
bool relative_names;
bool cleaning;
};
struct dns_difftuple {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
dns_diffop_t op;
dns_name_t name;
dns_ttl_t ttl;
struct dns_diff {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
dns_difftuplelist_t tuples;
};
* round-robin fashion.
*/
struct dns_dispatchset {
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
dns_dispatch_t **dispatches;
int ndisp;
int cur;
void
dns_dispatchmgr_setblackportlist(dns_dispatchmgr_t *mgr,
- dns_portlist_t *portlist);
+ dns_portlist_t *portlist);
/*%<
* This function is deprecated. Use dns_dispatchmgr_setavailports() instead.
*
*/
void
-dns_dispatch_removeresponse(dns_dispentry_t **resp,
+dns_dispatch_removeresponse(dns_dispentry_t **resp,
dns_dispatchevent_t **sockevent);
/*%<
* Stops the flow of responses for the provided id and destination.
#define DNS_DLZ_VALID(dlz) ISC_MAGIC_VALID(dlz, DNS_DLZ_MAGIC)
typedef isc_result_t (*dns_dlzallowzonexfr_t)(void *driverarg, void *dbdata,
- isc_mem_t *mctx,
+ isc_mem_t *mctx,
dns_rdataclass_t rdclass,
- const dns_name_t *name,
+ const dns_name_t *name,
const isc_sockaddr_t *clientaddr,
- dns_db_t **dbp);
+ dns_db_t **dbp);
/*%<
* Method prototype. Drivers implementing the DLZ interface MUST
*/
typedef isc_result_t (*dns_dlzfindzone_t)(void *driverarg, void *dbdata,
- isc_mem_t *mctx,
+ isc_mem_t *mctx,
dns_rdataclass_t rdclass,
- const dns_name_t *name,
+ const dns_name_t *name,
dns_clientinfomethods_t *methods,
- dns_clientinfo_t *clientinfo,
- dns_db_t **dbp);
+ dns_clientinfo_t *clientinfo,
+ dns_db_t **dbp);
/*%<
* Method prototype. Drivers implementing the DLZ interface MUST
* may call configuration functions during the configure call
*/
-typedef bool (*dns_dlzssumatch_t)(const dns_name_t *signer,
- const dns_name_t *name,
+typedef bool (*dns_dlzssumatch_t)(const dns_name_t *signer,
+ const dns_name_t *name,
const isc_netaddr_t *tcpaddr,
dns_rdatatype_t type, const dst_key_t *key,
void *driverarg, void *dbdata);
/*% information about a DLZ driver */
struct dns_dlzimplementation {
- const char *name;
+ const char *name;
const dns_dlzmethods_t *methods;
- isc_mem_t *mctx;
- void *driverarg;
+ isc_mem_t *mctx;
+ void *driverarg;
ISC_LINK(dns_dlzimplementation_t) link;
};
/*% An instance of a DLZ driver */
struct dns_dlzdb {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
dns_dlzimplementation_t *implementation;
- void *dbdata;
+ void *dbdata;
dlzconfigure_callback_t configure_callback;
bool search;
- char *dlzname;
+ char *dlzname;
ISC_LINK(dns_dlzdb_t) link;
dns_ssutable_t *ssutable;
};
typedef isc_result_t
dlz_dlopen_findzonedb_t(void *dbdata, const char *name,
dns_clientinfomethods_t *methods,
- dns_clientinfo_t *clientinfo);
+ dns_clientinfo_t *clientinfo);
/*
* dlz_dlopen_lookup() is required for all DLZ external drivers
int ref_cnt;
librpz_result_id_t hit_id;
librpz_result_t result;
- librpz_rsp_t *rsp;
+ librpz_rsp_t *rsp;
librpz_domain_buf_t origin_buf;
- const dns_name_t *qname;
+ const dns_name_t *qname;
rpsnode_t origin_node;
rpsnode_t data_node;
} rpsdb_t;
*/
struct dns_dyndbctx {
unsigned int magic;
- const void *hashinit;
- isc_mem_t *mctx;
- isc_log_t *lctx;
- dns_view_t *view;
+ const void *hashinit;
+ isc_mem_t *mctx;
+ isc_log_t *lctx;
+ dns_view_t *view;
dns_zonemgr_t *zmgr;
- isc_task_t *task;
+ isc_task_t *task;
isc_timermgr_t *timermgr;
unsigned int *memdebug;
};
typedef struct dns_geoip_elem {
dns_geoip_subtype_t subtype;
- void *db;
+ void *db;
union {
char as_string[256];
int as_int;
bool
dns_geoip_match(const isc_netaddr_t *reqaddr,
const dns_geoip_databases_t *geoip,
- const dns_geoip_elem_t *elt);
+ const dns_geoip_elem_t *elt);
ISC_LANG_ENDDECLS
*/
struct dns_ipkeylist {
isc_sockaddr_t *addrs;
- isc_dscp_t *dscps;
- dns_name_t **keys;
- dns_name_t **labels;
+ isc_dscp_t *dscps;
+ dns_name_t **keys;
+ dns_name_t **labels;
uint32_t count;
uint32_t allocated;
};
struct dns_iptable {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
isc_refcount_t refcount;
isc_radix_tree_t *radix;
ISC_LINK(dns_iptable_t) nextincache;
/* Stores a DNSSEC policy */
struct dns_kasp {
unsigned int magic;
- isc_mem_t *mctx;
- char *name;
+ isc_mem_t *mctx;
+ char *name;
/* Internals. */
isc_mutex_t lock;
* @param use_expired: true to not ignore expired zones
* @return client handle or NULL if the handle could not be created
*/
-typedef librpz_client_t *(librpz_client_create_t)(librpz_emsg_t *emsg,
+typedef librpz_client_t *(librpz_client_create_t)(librpz_emsg_t *emsg,
librpz_clist_t *clist,
- const char *cstr,
+ const char *cstr,
bool use_expired);
LIBDEF_F(client_create)
* @param[in,out] rsp state from librpz_itr_start()
* @return false on error
*/
-typedef bool(librpz_rsp_clientip_prefix_t)(librpz_emsg_t *emsg,
+typedef bool(librpz_rsp_clientip_prefix_t)(librpz_emsg_t *emsg,
librpz_prefix_t *prefix,
- librpz_rsp_t *rsp);
+ librpz_rsp_t *rsp);
LIBDEF_F(rsp_clientip_prefix)
/**
* @param[in,out] rsp state from librpz_itr_start()
* @return false on error
*/
-typedef bool(librpz_rsp_domain_t)(librpz_emsg_t *emsg,
+typedef bool(librpz_rsp_domain_t)(librpz_emsg_t *emsg,
librpz_domain_buf_t *owner,
- librpz_rsp_t *rsp);
+ librpz_rsp_t *rsp);
LIBDEF_F(rsp_domain)
/**
in_port_t port);
LIBDEF_F(mk_inet_su)
-typedef socku_t *(librpz_mk_inet6_su_t)(socku_t *su,
+typedef socku_t *(librpz_mk_inet6_su_t)(socku_t *su,
const struct in6_addr *addrp,
uint32_t scope_id, in_port_t port);
LIBDEF_F(mk_inet6_su)
* This is the dlopen() interface to librpz.
*/
typedef const struct {
- const char *dnsrpzd_path;
- const char *version;
- librpz_parse_log_opt_t *parse_log_opt;
- librpz_log_level_val_t *log_level_val;
+ const char *dnsrpzd_path;
+ const char *version;
+ librpz_parse_log_opt_t *parse_log_opt;
+ librpz_log_level_val_t *log_level_val;
librpz_set_log_t *set_log;
- librpz_vpemsg_t *vpemsg;
- librpz_pemsg_t *pemsg;
- librpz_vlog_t *vlog;
- librpz_log_t *log;
+ librpz_vpemsg_t *vpemsg;
+ librpz_pemsg_t *pemsg;
+ librpz_vlog_t *vlog;
+ librpz_log_t *log;
librpz_fatal_t *fatal LIBRPZ_NORET;
librpz_rpz_assert_t *rpz_assert LIBRPZ_NORET;
librpz_rpz_vassert_t *rpz_vassert LIBRPZ_NORET;
- librpz_clist_create_t *clist_create;
- librpz_clist_detach_t *clist_detach;
- librpz_client_create_t *client_create;
+ librpz_clist_create_t *clist_create;
+ librpz_clist_detach_t *clist_detach;
+ librpz_client_create_t *client_create;
librpz_connect_t *connect;
- librpz_client_detach_t *client_detach;
- librpz_rsp_create_t *rsp_create;
- librpz_rsp_detach_t *rsp_detach;
- librpz_rsp_result_t *rsp_result;
- librpz_have_trig_t *have_trig;
- librpz_have_ns_trig_t *have_ns_trig;
- librpz_rsp_clientip_prefix_t *rsp_clientip_prefix;
- librpz_rsp_domain_t *rsp_domain;
- librpz_rsp_rr_t *rsp_rr;
+ librpz_client_detach_t *client_detach;
+ librpz_rsp_create_t *rsp_create;
+ librpz_rsp_detach_t *rsp_detach;
+ librpz_rsp_result_t *rsp_result;
+ librpz_have_trig_t *have_trig;
+ librpz_have_ns_trig_t *have_ns_trig;
+ librpz_rsp_clientip_prefix_t *rsp_clientip_prefix;
+ librpz_rsp_domain_t *rsp_domain;
+ librpz_rsp_rr_t *rsp_rr;
librpz_rsp_soa_t *rsp_soa;
- librpz_soa_serial_t *soa_serial;
- librpz_rsp_push_t *rsp_push;
+ librpz_soa_serial_t *soa_serial;
+ librpz_rsp_push_t *rsp_push;
librpz_rsp_pop_t *rsp_pop;
librpz_rsp_pop_discard_t *rsp_pop_discard;
librpz_rsp_forget_zone_t *rsp_forget_zone;
- librpz_ck_ip_t *ck_ip;
- librpz_ck_domain_t *ck_domain;
- librpz_zone_refresh_t *zone_refresh;
+ librpz_ck_ip_t *ck_ip;
+ librpz_ck_domain_t *ck_domain;
+ librpz_zone_refresh_t *zone_refresh;
librpz_db_info_t *db_info;
- librpz_itr_start_t *itr_start;
- librpz_mf_stats_t *mf_stats;
- librpz_vers_stats_t *vers_stats;
- librpz_itr_zone_t *itr_zone;
- librpz_itr_node_t *itr_node;
- librpz_policy2str_t *policy2str;
- librpz_trig2str_t *trig2str;
- librpz_secs2str_t *secs2str;
- librpz_str2secs_t *str2secs;
- librpz_rtype2str_t *rtype2str;
- librpz_domain_ntop_t *domain_ntop;
- librpz_domain_pton2_t *domain_pton2;
- librpz_mk_inet_su_t *mk_inet_su;
- librpz_mk_inet6_su_t *mk_inet6_su;
- librpz_str2su_t *str2su;
- librpz_su2str_t *su2str;
+ librpz_itr_start_t *itr_start;
+ librpz_mf_stats_t *mf_stats;
+ librpz_vers_stats_t *vers_stats;
+ librpz_itr_zone_t *itr_zone;
+ librpz_itr_node_t *itr_node;
+ librpz_policy2str_t *policy2str;
+ librpz_trig2str_t *trig2str;
+ librpz_secs2str_t *secs2str;
+ librpz_str2secs_t *str2secs;
+ librpz_rtype2str_t *rtype2str;
+ librpz_domain_ntop_t *domain_ntop;
+ librpz_domain_pton2_t *domain_pton2;
+ librpz_mk_inet_su_t *mk_inet_su;
+ librpz_mk_inet6_su_t *mk_inet6_su;
+ librpz_str2su_t *str2su;
+ librpz_su2str_t *su2str;
} librpz_0_t;
extern librpz_0_t librpz_def_0;
#define LIBRPZ_DEF_STR "librpz_def_0"
typedef librpz_0_t librpz_t;
-extern librpz_t *librpz;
+extern librpz_t *librpz;
#if LIBRPZ_LIB_OPEN == 2
#include <dlfcn.h>
*/
static inline librpz_t *
librpz_lib_open(librpz_emsg_t *emsg, void **dl_handle, const char *path) {
- void *handle;
+ void *handle;
librpz_t *new_librpz;
emsg->c[0] = '\0';
#include <isc/lang.h>
#include <isc/log.h>
-LIBDNS_EXTERNAL_DATA extern isc_log_t *dns_lctx;
+LIBDNS_EXTERNAL_DATA extern isc_log_t *dns_lctx;
LIBDNS_EXTERNAL_DATA extern isc_logcategory_t dns_categories[];
LIBDNS_EXTERNAL_DATA extern isc_logmodule_t dns_modules[];
typedef struct dns_lookupevent {
ISC_EVENT_COMMON(struct dns_lookupevent);
isc_result_t result;
- dns_name_t *name;
+ dns_name_t *name;
dns_rdataset_t *rdataset;
dns_rdataset_t *sigrdataset;
- dns_db_t *db;
+ dns_db_t *db;
dns_dbnode_t *node;
} dns_lookupevent_t;
/*@{*/
isc_result_t
dns_master_dumptostreamasync(isc_mem_t *mctx, dns_db_t *db,
- dns_dbversion_t *version,
+ dns_dbversion_t *version,
const dns_master_style_t *style, FILE *f,
isc_task_t *task, dns_dumpdonefunc_t done,
void *done_arg, dns_dumpctx_t **dctxp);
isc_result_t
dns_master_rdatasettotext(const dns_name_t *owner_name,
- dns_rdataset_t *rdataset,
+ dns_rdataset_t *rdataset,
const dns_master_style_t *style, dns_indent_t *indent,
isc_buffer_t *target);
/*%<
isc_result_t
dns_master_questiontotext(const dns_name_t *owner_name,
- dns_rdataset_t *rdataset,
+ dns_rdataset_t *rdataset,
const dns_master_style_t *style,
- isc_buffer_t *target);
+ isc_buffer_t *target);
isc_result_t
dns_master_dumpnodetostream(isc_mem_t *mctx, dns_db_t *db,
dns_master_styleflags(const dns_master_style_t *style);
isc_result_t
-dns_master_stylecreate(dns_master_style_t **style,
+dns_master_stylecreate(dns_master_style_t **style,
dns_masterstyle_flags_t flags, unsigned int ttl_column,
unsigned int class_column, unsigned int type_column,
unsigned int rdata_column, unsigned int line_length,
typedef struct dns_msgblock dns_msgblock_t;
struct dns_sortlist_arg {
- dns_aclenv_t *env;
- const dns_acl_t *acl;
+ dns_aclenv_t *env;
+ const dns_acl_t *acl;
const dns_aclelement_t *element;
};
/* private from here down */
dns_namelist_t sections[DNS_SECTION_MAX];
- dns_name_t *cursors[DNS_SECTION_MAX];
+ dns_name_t *cursors[DNS_SECTION_MAX];
dns_rdataset_t *opt;
dns_rdataset_t *sig0;
dns_rdataset_t *tsig;
isc_buffer_t *buffer;
dns_compress_t *cctx;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
isc_mempool_t *namepool;
isc_mempool_t *rdspool;
dns_name_t *sig0name; /* Owner name of SIG0, if any
* */
- dst_key_t *sig0key;
+ dst_key_t *sig0key;
dns_rcode_t sig0status;
isc_region_t query;
isc_region_t saved;
dns_message_pseudosectiontotext(dns_message_t *msg, dns_pseudosection_t section,
const dns_master_style_t *style,
dns_messagetextflag_t flags,
- isc_buffer_t *target);
+ isc_buffer_t *target);
/*%<
* Convert section 'section' or 'pseudosection' of message 'msg' to
* a cleartext representation
isc_result_t
dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
- const dns_name_t *name,
+ const dns_name_t *name,
const dns_rdata_nsec3param_t *nsec3param, dns_ttl_t nsecttl,
bool unsecure, dns_diff_t *diff);
isc_result_t
dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version,
- const dns_name_t *name,
+ const dns_name_t *name,
const dns_rdata_nsec3param_t *nsec3param, dns_diff_t *diff);
isc_result_t
isc_result_t
dns_nsec3_delnsec3sx(dns_db_t *db, dns_dbversion_t *version,
const dns_name_t *name, dns_rdatatype_t private,
- dns_diff_t *diff);
+ dns_diff_t *diff);
/*%<
* Remove NSEC3 records for 'name', recording the change in 'diff'.
* Adjust previous NSEC3 records, if any, to reflect the removal.
struct dns_ntatable {
/* Unlocked. */
unsigned int magic;
- dns_view_t *view;
+ dns_view_t *view;
isc_rwlock_t rwlock;
isc_taskmgr_t *taskmgr;
isc_timermgr_t *timermgr;
- isc_task_t *task;
+ isc_task_t *task;
/* Protected by atomics */
isc_refcount_t references;
/* Locked by rwlock. */
bool request_expire;
bool force_tcp;
bool tcp_keepalive;
- dns_name_t *key;
- isc_sockaddr_t *transfer_source;
+ dns_name_t *key;
+ isc_sockaddr_t *transfer_source;
isc_dscp_t transfer_dscp;
- isc_sockaddr_t *notify_source;
+ isc_sockaddr_t *notify_source;
isc_dscp_t notify_dscp;
- isc_sockaddr_t *query_source;
+ isc_sockaddr_t *query_source;
isc_dscp_t query_dscp;
uint16_t udpsize; /* receive size */
uint16_t maxudp; /* transmit size */
dns_peer_setkey(dns_peer_t *peer, dns_name_t **keyval);
isc_result_t
-dns_peer_settransfersource(dns_peer_t *peer,
+dns_peer_settransfersource(dns_peer_t *peer,
const isc_sockaddr_t *transfer_source);
isc_result_t
};
typedef isc_result_t (*dns_rbtfindcallback_t)(dns_rbtnode_t *node,
- dns_name_t *name,
- void *callback_arg);
+ dns_name_t *name,
+ void *callback_arg);
typedef isc_result_t (*dns_rbtdatawriter_t)(FILE *file, unsigned char *data,
void *arg, uint64_t *crc);
void
dns_rbt_printtext(dns_rbt_t *rbt, void (*data_printer)(FILE *, void *),
- FILE *f);
+ FILE *f);
/*%<
* Print an ASCII representation of the internal structure of the red-black
* tree of trees to the passed stream.
* purpose the client desires.
*/
struct dns_rdata {
- unsigned char *data;
+ unsigned char *data;
unsigned int length;
dns_rdataclass_t rdclass;
dns_rdatatype_t type;
*/
isc_result_t
-dns_rdatalist_fromrdataset(dns_rdataset_t *rdataset,
+dns_rdatalist_fromrdataset(dns_rdataset_t *rdataset,
dns_rdatalist_t **rdatalist);
/*%<
* Point 'rdatalist' to the rdatalist in 'rdataset'.
void (*current)(dns_rdataset_t *rdataset, dns_rdata_t *rdata);
void (*clone)(dns_rdataset_t *source, dns_rdataset_t *target);
unsigned int (*count)(dns_rdataset_t *rdataset);
- isc_result_t (*addnoqname)(dns_rdataset_t *rdataset,
+ isc_result_t (*addnoqname)(dns_rdataset_t *rdataset,
const dns_name_t *name);
isc_result_t (*getnoqname)(dns_rdataset_t *rdataset, dns_name_t *name,
dns_rdataset_t *neg, dns_rdataset_t *negsig);
- isc_result_t (*addclosest)(dns_rdataset_t *rdataset,
+ isc_result_t (*addclosest)(dns_rdataset_t *rdataset,
const dns_name_t *name);
isc_result_t (*getclosest)(dns_rdataset_t *rdataset, dns_name_t *name,
dns_rdataset_t *neg, dns_rdataset_t *negsig);
void (*clearprefetch)(dns_rdataset_t *rdataset);
void (*setownercase)(dns_rdataset_t *rdataset, const dns_name_t *name);
void (*getownercase)(const dns_rdataset_t *rdataset, dns_name_t *name);
- isc_result_t (*addglue)(dns_rdataset_t *rdataset,
+ isc_result_t (*addglue)(dns_rdataset_t *rdataset,
dns_dbversion_t *version, dns_message_t *msg);
} dns_rdatasetmethods_t;
* These are for use by the rdataset implementation, and MUST NOT
* be changed by clients.
*/
- void *private1;
- void *private2;
- void *private3;
+ void *private1;
+ void *private2;
+ void *private3;
unsigned int privateuint4;
- void *private5;
+ void *private5;
const void *private6;
const void *private7;
/*@}*/
*/
isc_result_t
-dns_rdataset_towiresorted(dns_rdataset_t *rdataset,
+dns_rdataset_towiresorted(dns_rdataset_t *rdataset,
const dns_name_t *owner_name, dns_compress_t *cctx,
isc_buffer_t *target, dns_rdatasetorderfunc_t order,
const void *order_arg, unsigned int options,
*/
isc_result_t
-dns_rdataset_towirepartial(dns_rdataset_t *rdataset,
+dns_rdataset_towirepartial(dns_rdataset_t *rdataset,
const dns_name_t *owner_name, dns_compress_t *cctx,
isc_buffer_t *target, dns_rdatasetorderfunc_t order,
const void *order_arg, unsigned int options,
*/
isc_result_t
-dns_rdataset_additionaldata(dns_rdataset_t *rdataset,
+dns_rdataset_additionaldata(dns_rdataset_t *rdataset,
dns_additionaldatafunc_t add, void *arg);
/*%<
* For each rdata in rdataset, call 'add' for each name and type in the
/* Unlocked. */
unsigned int magic;
dns_rdatasetitermethods_t *methods;
- dns_db_t *db;
- dns_dbnode_t *node;
- dns_dbversion_t *version;
+ dns_db_t *db;
+ dns_dbnode_t *node;
+ dns_dbversion_t *version;
isc_stdtime_t now;
};
void
dns_rdatasetiter_current(dns_rdatasetiter_t *iterator,
- dns_rdataset_t *rdataset);
+ dns_rdataset_t *rdataset);
/*%<
* Return the current rdataset.
*
*/
typedef struct dns_fetchevent {
ISC_EVENT_COMMON(struct dns_fetchevent);
- dns_fetch_t *fetch;
+ dns_fetch_t *fetch;
isc_result_t result;
dns_rdatatype_t qtype;
- dns_db_t *db;
+ dns_db_t *db;
dns_dbnode_t *node;
- dns_rdataset_t *rdataset;
- dns_rdataset_t *sigrdataset;
+ dns_rdataset_t *rdataset;
+ dns_rdataset_t *sigrdataset;
dns_fixedname_t foundname;
const isc_sockaddr_t *client;
dns_messageid_t id;
isc_result_t
dns_resolver_createfetch(dns_resolver_t *res, const dns_name_t *name,
dns_rdatatype_t type, const dns_name_t *domain,
- dns_rdataset_t *nameservers,
- dns_forwarders_t *forwarders,
+ dns_rdataset_t *nameservers,
+ dns_forwarders_t *forwarders,
const isc_sockaddr_t *client, dns_messageid_t id,
unsigned int options, unsigned int depth,
isc_counter_t *qc, isc_task_t *task,
*/
bool
-dns_resolver_algorithm_supported(dns_resolver_t *resolver,
+dns_resolver_algorithm_supported(dns_resolver_t *resolver,
const dns_name_t *name, unsigned int alg);
/*%<
* Check if the given algorithm is supported by this resolver.
*/
bool
-dns_resolver_ds_digest_supported(dns_resolver_t *resolver,
+dns_resolver_ds_digest_supported(dns_resolver_t *resolver,
const dns_name_t *name,
unsigned int digest_type);
/*%<
uint32_t min_update_interval; /* minimal interval between
* updates */
- isc_ht_t *nodes; /* entries in zone */
+ isc_ht_t *nodes; /* entries in zone */
dns_rpz_zones_t *rpzs; /* owner */
isc_time_t lastupdated; /* last time the zone was processed
* */
bool updatepending; /* there is an update
* pending/waiting */
bool updaterunning; /* there is an update running */
- dns_db_t *db; /* zones database */
+ dns_db_t *db; /* zones database */
dns_dbversion_t *dbversion; /* version we will be updating to */
- dns_db_t *updb; /* zones database we're working on */
+ dns_db_t *updb; /* zones database we're working on */
dns_dbversion_t *updbversion; /* version we're currently working
* on */
dns_dbiterator_t *updbit; /* iterator to use when updating */
*/
struct dns_rpz_zones {
dns_rpz_popt_t p;
- dns_rpz_zone_t *zones[DNS_RPZ_MAX_ZONES];
+ dns_rpz_zone_t *zones[DNS_RPZ_MAX_ZONES];
dns_rpz_triggers_t triggers[DNS_RPZ_MAX_ZONES];
/*
*/
dns_rpz_triggers_t total_triggers;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
isc_taskmgr_t *taskmgr;
isc_timermgr_t *timermgr;
- isc_task_t *updater;
+ isc_task_t *updater;
isc_refcount_t refs;
isc_refcount_t irefs;
/*
isc_mutex_t maint_lock;
dns_rpz_cidr_node_t *cidr;
- dns_rbt_t *rbt;
+ dns_rbt_t *rbt;
/*
* DNSRPZ librpz configuration string and handle on librpz connection
*/
struct {
dns_rpz_type_t type;
- dns_rpz_zone_t *rpz;
+ dns_rpz_zone_t *rpz;
dns_rpz_prefix_t prefix;
dns_rpz_policy_t policy;
dns_ttl_t ttl;
isc_result_t result;
- dns_zone_t *zone;
- dns_db_t *db;
+ dns_zone_t *zone;
+ dns_db_t *db;
dns_dbversion_t *version;
- dns_dbnode_t *node;
- dns_rdataset_t *rdataset;
+ dns_dbnode_t *node;
+ dns_rdataset_t *rdataset;
} m;
/*
* State for chasing IP addresses and NS names including recursion.
*/
struct {
unsigned int label;
- dns_db_t *db;
+ dns_db_t *db;
dns_rdataset_t *ns_rdataset;
dns_rdatatype_t r_type;
isc_result_t r_result;
isc_result_t result;
bool is_zone;
bool authoritative;
- dns_zone_t *zone;
- dns_db_t *db;
+ dns_zone_t *zone;
+ dns_db_t *db;
dns_dbnode_t *node;
dns_rdataset_t *rdataset;
dns_rdataset_t *sigrdataset;
* r_name: recursing for this name to possible policy triggers
* f_name: saved found name from before recursion
*/
- dns_name_t *p_name;
- dns_name_t *r_name;
- dns_name_t *fname;
+ dns_name_t *p_name;
+ dns_name_t *r_name;
+ dns_name_t *fname;
dns_fixedname_t _p_namef;
dns_fixedname_t _r_namef;
dns_fixedname_t _fnamef;
typedef struct dns_rriterator {
unsigned int magic;
isc_result_t result;
- dns_db_t *db;
- dns_dbiterator_t *dbit;
- dns_dbversion_t *ver;
+ dns_db_t *db;
+ dns_dbiterator_t *dbit;
+ dns_dbversion_t *ver;
isc_stdtime_t now;
- dns_dbnode_t *node;
+ dns_dbnode_t *node;
dns_fixedname_t fixedname;
dns_rdatasetiter_t *rdatasetit;
dns_rdataset_t rdataset;
typedef struct dns_sdballnodes dns_sdballnodes_t;
typedef isc_result_t (*dns_sdblookupfunc_t)(const char *zone, const char *name,
- void *dbdata,
+ void *dbdata,
dns_sdblookup_t *lookup,
dns_clientinfomethods_t *methods,
dns_clientinfo_t *clientinfo);
-typedef isc_result_t (*dns_sdblookup2func_t)(const dns_name_t *zone,
- const dns_name_t *name,
- void *dbdata,
+typedef isc_result_t (*dns_sdblookup2func_t)(const dns_name_t *zone,
+ const dns_name_t *name,
+ void *dbdata,
dns_sdblookup_t *lookup,
dns_clientinfomethods_t *methods,
dns_clientinfo_t *clientinfo);
*/
typedef isc_result_t (*dns_sdlzfindzone_t)(void *driverarg, void *dbdata,
- const char *name,
+ const char *name,
dns_clientinfomethods_t *methods,
- dns_clientinfo_t *clientinfo);
+ dns_clientinfo_t *clientinfo);
/*%<
* Method prototype. Drivers implementing the SDLZ interface MUST
* supply a find zone method. This method is called when the DNS
typedef isc_result_t (*dns_sdlzlookupfunc_t)(const char *zone, const char *name,
void *driverarg, void *dbdata,
- dns_sdlzlookup_t *lookup,
+ dns_sdlzlookup_t *lookup,
dns_clientinfomethods_t *methods,
dns_clientinfo_t *clientinfo);
* If the call is successful then *versionp should be set to NULL
*/
-typedef isc_result_t (*dns_sdlzconfigure_t)(dns_view_t *view,
+typedef isc_result_t (*dns_sdlzconfigure_t)(dns_view_t *view,
dns_dlzdb_t *dlzdb, void *driverarg,
void *dbdata);
/*%<
uint16_t size;
isc_buffer_t buffer;
unsigned int maxsize;
- isc_mem_t *mctx;
- isc_socket_t *sock;
- isc_task_t *task;
+ isc_mem_t *mctx;
+ isc_socket_t *sock;
+ isc_task_t *task;
isc_taskaction_t action;
- void *arg;
+ void *arg;
isc_event_t event;
/* public (read-only) */
isc_result_t result;
#define DNS_TKEYMODE_DELETE 5
struct dns_tkeyctx {
- dst_key_t *dhkey;
- dns_name_t *domain;
+ dst_key_t *dhkey;
+ dns_name_t *domain;
dns_gss_cred_id_t gsscred;
- isc_mem_t *mctx;
- char *gssapi_keytab;
+ isc_mem_t *mctx;
+ char *gssapi_keytab;
};
isc_result_t
#define DNS_TSIG_FUDGE 300
struct dns_tsig_keyring {
- dns_rbt_t *keys;
+ dns_rbt_t *keys;
unsigned int writecount;
isc_rwlock_t lock;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
/*
* LRU list of generated key along with a count of the keys on the
* list and a maximum size.
struct dns_tsigkey {
/* Unlocked */
unsigned int magic; /*%< Magic number. */
- isc_mem_t *mctx;
- dst_key_t *key; /*%< Key */
+ isc_mem_t *mctx;
+ dst_key_t *key; /*%< Key */
dns_name_t name; /*%< Key name */
- const dns_name_t *algorithm; /*%< Algorithm name */
+ const dns_name_t *algorithm; /*%< Algorithm name */
dns_name_t *creator; /*%< name that created secret */
bool generated; /*%< was this generated? */
isc_stdtime_t inception; /*%< start of validity period */
*/
#ifndef GSSAPI
typedef struct not_defined_gss_cred_id *gss_cred_id_t;
-typedef struct not_defined_gss_ctx *gss_ctx_id_t;
+typedef struct not_defined_gss_ctx *gss_ctx_id_t;
#endif /* ifndef GSSAPI */
typedef struct dst_gssapi_signverifyctx dst_gssapi_signverifyctx_t;
/*
* Name and type of the response to be validated.
*/
- dns_name_t *name;
+ dns_name_t *name;
dns_rdatatype_t type;
/*
* Rdata and RRSIG (if any) for positive responses.
unsigned int options;
unsigned int attributes;
dns_validatorevent_t *event;
- dns_fetch_t *fetch;
- dns_validator_t *subvalidator;
- dns_validator_t *parent;
- dns_keytable_t *keytable;
- dst_key_t *key;
- dns_rdata_rrsig_t *siginfo;
- isc_task_t *task;
+ dns_fetch_t *fetch;
+ dns_validator_t *subvalidator;
+ dns_validator_t *parent;
+ dns_keytable_t *keytable;
+ dst_key_t *key;
+ dns_rdata_rrsig_t *siginfo;
+ isc_task_t *task;
isc_taskaction_t action;
void *arg;
unsigned int labels;
- dns_rdataset_t *currentset;
- dns_rdataset_t *keyset;
- dns_rdataset_t *dsset;
+ dns_rdataset_t *currentset;
+ dns_rdataset_t *keyset;
+ dns_rdataset_t *dsset;
dns_rdataset_t fdsset;
dns_rdataset_t frdataset;
dns_rdataset_t fsigrdataset;
struct dns_view {
/* Unlocked. */
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
dns_rdataclass_t rdclass;
- char *name;
+ char *name;
dns_zt_t *zonetable;
- dns_resolver_t *resolver;
- dns_adb_t *adb;
+ dns_resolver_t *resolver;
+ dns_adb_t *adb;
dns_requestmgr_t *requestmgr;
- dns_cache_t *cache;
+ dns_cache_t *cache;
dns_db_t *cachedb;
dns_db_t *hints;
/* Configurable data. */
dns_tsig_keyring_t *statickeys;
dns_tsig_keyring_t *dynamickeys;
- dns_peerlist_t *peers;
- dns_order_t *order;
- dns_fwdtable_t *fwdtable;
+ dns_peerlist_t *peers;
+ dns_order_t *order;
+ dns_fwdtable_t *fwdtable;
bool recursion;
bool qminimization;
bool qmin_strict;
bool trust_anchor_telemetry;
bool root_key_sentinel;
dns_transfer_format_t transfer_format;
- dns_acl_t *cacheacl;
- dns_acl_t *cacheonacl;
- dns_acl_t *queryacl;
- dns_acl_t *queryonacl;
- dns_acl_t *recursionacl;
- dns_acl_t *recursiononacl;
- dns_acl_t *sortlist;
- dns_acl_t *notifyacl;
- dns_acl_t *transferacl;
- dns_acl_t *updateacl;
- dns_acl_t *upfwdacl;
- dns_acl_t *denyansweracl;
- dns_acl_t *nocasecompress;
+ dns_acl_t *cacheacl;
+ dns_acl_t *cacheonacl;
+ dns_acl_t *queryacl;
+ dns_acl_t *queryonacl;
+ dns_acl_t *recursionacl;
+ dns_acl_t *recursiononacl;
+ dns_acl_t *sortlist;
+ dns_acl_t *notifyacl;
+ dns_acl_t *transferacl;
+ dns_acl_t *updateacl;
+ dns_acl_t *upfwdacl;
+ dns_acl_t *denyansweracl;
+ dns_acl_t *nocasecompress;
bool msgcompression;
- dns_rbt_t *answeracl_exclude;
- dns_rbt_t *denyanswernames;
- dns_rbt_t *answernames_exclude;
- dns_rrl_t *rrl;
+ dns_rbt_t *answeracl_exclude;
+ dns_rbt_t *denyanswernames;
+ dns_rbt_t *answernames_exclude;
+ dns_rrl_t *rrl;
bool provideixfr;
bool requestnsid;
bool sendcookie;
dns_aclenv_t aclenv;
dns_rdatatype_t preferred_glue;
bool flush;
- dns_namelist_t *delonly;
+ dns_namelist_t *delonly;
bool rootdelonly;
- dns_namelist_t *rootexclude;
+ dns_namelist_t *rootexclude;
bool checknames;
uint16_t maxudp;
dns_ttl_t staleanswerttl;
uint32_t staleanswerclienttimeout;
uint16_t nocookieudp;
uint16_t padding;
- dns_acl_t *pad_acl;
+ dns_acl_t *pad_acl;
unsigned int maxbits;
dns_dns64list_t dns64;
unsigned int dns64cnt;
- dns_rpz_zones_t *rpzs;
+ dns_rpz_zones_t *rpzs;
dns_catz_zones_t *catzs;
dns_dlzdblist_t dlz_searched;
dns_dlzdblist_t dlz_unsearched;
uint32_t fail_ttl;
- dns_badcache_t *failcache;
+ dns_badcache_t *failcache;
/*
* Configurable data for server use only,
* XXX: This should be a pointer to an opaque type that
* named implements.
*/
- char *new_zone_dir;
- char *new_zone_file;
- char *new_zone_db;
- void *new_zone_dbenv;
+ char *new_zone_dir;
+ char *new_zone_file;
+ char *new_zone_db;
+ void *new_zone_dbenv;
uint64_t new_zone_mapsize;
- void *new_zone_config;
+ void *new_zone_config;
void (*cfg_destroy)(void **);
isc_mutex_t new_zone_lock;
buf[2] = (testcase->keyid & 0xff);
buf[3] = testcase->remove;
buf[4] = testcase->complete;
- private
- ->data = buf;
- private
- ->length = len;
- private
- ->type = privatetype;
- private
- ->rdclass = dns_rdataclass_in;
+ private->data = buf;
+ private->length = len;
+ private->type = privatetype;
+ private->rdclass = dns_rdataclass_in;
}
static void
int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and
* IPv6 */
size_t ai_addrlen; /* Length of ai_addr */
- char *ai_canonname; /* Canonical name for hostname */
+ char *ai_canonname; /* Canonical name for hostname */
struct sockaddr *ai_addr; /* Binary address */
struct addrinfo *ai_next; /* Next structure in linked list */
};
*** Types
***/
struct isc_backtrace_symmap {
- void *addr;
+ void *addr;
const char *symbol;
};
struct isc_buffer {
unsigned int magic;
- void *base;
+ void *base;
/*@{*/
/*! The following integers are byte offsets from 'base'. */
unsigned int length;
#define isc_buffer_constinit(_b, _d, _l) \
do { \
union { \
- void *_var; \
+ void *_var; \
const void *_const; \
} _deconst; \
_deconst._const = (_d); \
* the data cleanup function.
*/
struct isc_httpdurl {
- char *url;
+ char *url;
isc_httpdaction_t *action;
- void *action_arg;
+ void *action_arg;
bool isstatic;
isc_time_t loadtime;
ISC_LINK(isc_httpdurl_t) link;
*/
isc_result_t
isc_httpdmgr_create(isc_mem_t *mctx, isc_socket_t *sock, isc_task_t *task,
- isc_httpdclientok_t *client_ok,
+ isc_httpdclientok_t *client_ok,
isc_httpdondestroy_t *ondestory, void *cb_arg,
isc_timermgr_t *tmgr, isc_httpdmgr_t **httpdp);
unsigned long as_ulong;
isc_region_t as_region;
isc_textregion_t as_textregion;
- void *as_pointer;
+ void *as_pointer;
} isc_tokenvalue_t;
typedef struct isc_token {
uint32_t tap; /*%< bit taps */
unsigned int count; /*%< reseed count (in BITS!) */
isc_lfsrreseed_t reseed; /*%< reseed function */
- void *arg; /*%< reseed function argument */
+ void *arg; /*%< reseed function argument */
};
ISC_LANG_BEGINDECLS
* the order of the names.
*/
LIBISC_EXTERNAL_DATA extern isc_logcategory_t isc_categories[];
-LIBISC_EXTERNAL_DATA extern isc_log_t *isc_lctx;
+LIBISC_EXTERNAL_DATA extern isc_log_t *isc_lctx;
LIBISC_EXTERNAL_DATA extern isc_logmodule_t isc_modules[];
/*@}*/
isc_result_t
isc_log_usechannel(isc_logconfig_t *lcfg, const char *name,
const isc_logcategory_t *category,
- const isc_logmodule_t *module);
+ const isc_logmodule_t *module);
/*%<
* Associate a named logging channel with a category and module that
* will use it.
struct isc_quota_cb {
int magic;
isc_quota_cb_func_t cb_func;
- void *data;
+ void *data;
ISC_LINK(isc_quota_cb_t) link;
};
} while (0)
typedef struct isc_prefix {
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
unsigned int family; /* AF_INET | AF_INET6, or AF_UNSPEC for
* "any" */
unsigned int bitlen; /* 0 for "any" */
#define ISC_RADIX_FAMILY(p) (((p)->family == AF_INET6) ? RADIX_V6 : RADIX_V4)
typedef struct isc_radix_node {
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
uint32_t bit; /* bit length of the prefix */
- isc_prefix_t *prefix; /* who we are in radix tree */
+ isc_prefix_t *prefix; /* who we are in radix tree */
struct isc_radix_node *l, *r; /* left and right children */
struct isc_radix_node *parent; /* may be used */
- void *data[RADIX_FAMILIES]; /* pointers to IPv4
+ void *data[RADIX_FAMILIES]; /* pointers to IPv4
* and IPV6 data */
int node_num[RADIX_FAMILIES]; /* which node
* this was in
typedef struct isc_radix_tree {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
isc_radix_node_t *head;
uint32_t maxbits; /* for IP, 32 bit addresses */
int num_active_node; /* for debugging purposes */
#define RADIX_WALK(Xhead, Xnode) \
do { \
- isc_radix_node_t *Xstack[RADIX_MAXBITS + 1]; \
+ isc_radix_node_t *Xstack[RADIX_MAXBITS + 1]; \
isc_radix_node_t **Xsp = Xstack; \
- isc_radix_node_t *Xrn = (Xhead); \
+ isc_radix_node_t *Xrn = (Xhead); \
while ((Xnode = Xrn)) { \
if (Xnode->prefix)
};
struct isc_textregion {
- char *base;
+ char *base;
unsigned int length;
};
/*%<
* See isc_socketmgr_create() above.
*/
-typedef isc_result_t (*isc_socketmgrcreatefunc_t)(isc_mem_t *mctx,
+typedef isc_result_t (*isc_socketmgrcreatefunc_t)(isc_mem_t *mctx,
isc_socketmgr_t **managerp);
ISC_LANG_ENDDECLS
***/
/*% Symbol table value. */
typedef union isc_symvalue {
- void *as_pointer;
+ void *as_pointer;
const void *as_cpointer;
int as_integer;
unsigned int as_uinteger;
do { \
union { \
const void *k; \
- void *v; \
+ void *v; \
} _u; \
_u.k = konst; \
var = _u.v; \
CK_BBOOL ontoken;
CK_BBOOL reqlogon;
CK_BYTE attrcnt;
- CK_ATTRIBUTE *repr;
+ CK_ATTRIBUTE *repr;
};
struct pk11_context {
- void *handle;
+ void *handle;
CK_SESSION_HANDLE session;
CK_BBOOL ontoken;
CK_OBJECT_HANDLE object;
struct ck_attribute {
ck_attribute_type_t type;
- void *value;
+ void *value;
unsigned long value_len;
};
struct ck_mechanism {
ck_mechanism_type_t mechanism;
- void *parameter;
+ void *parameter;
unsigned long parameter_len;
};
ck_mechanism_type_t hash_alg;
ck_rsa_pkcs_mgf_type_t mgf;
ck_rsa_pkcs_oaep_source_type_t source;
- void *source_data;
+ void *source_data;
unsigned long source_data_len;
};
_CK_DECLARE_FUNCTION(C_GetSessionInfo, (ck_session_handle_t session,
struct ck_session_info *info));
_CK_DECLARE_FUNCTION(C_GetOperationState, (ck_session_handle_t session,
- unsigned char *operation_state,
+ unsigned char *operation_state,
unsigned long *operation_state_len));
_CK_DECLARE_FUNCTION(C_SetOperationState,
(ck_session_handle_t session,
- unsigned char *operation_state,
+ unsigned char *operation_state,
unsigned long operation_state_len,
ck_object_handle_t encryption_key,
ck_object_handle_t authentiation_key));
unsigned long part_len, unsigned char *encrypted_part,
unsigned long *encrypted_part_len));
_CK_DECLARE_FUNCTION(C_EncryptFinal, (ck_session_handle_t session,
- unsigned char *last_encrypted_part,
+ unsigned char *last_encrypted_part,
unsigned long *last_encrypted_part_len));
_CK_DECLARE_FUNCTION(C_DecryptInit,
(ck_session_handle_t session,
struct ck_mechanism *mechanism, ck_object_handle_t key));
_CK_DECLARE_FUNCTION(C_Decrypt, (ck_session_handle_t session,
- unsigned char *encrypted_data,
+ unsigned char *encrypted_data,
unsigned long encrypted_data_len,
unsigned char *data, unsigned long *data_len));
_CK_DECLARE_FUNCTION(C_DecryptUpdate,
(ck_session_handle_t session,
- unsigned char *encrypted_part,
+ unsigned char *encrypted_part,
unsigned long encrypted_part_len, unsigned char *part,
unsigned long *part_len));
_CK_DECLARE_FUNCTION(C_DecryptFinal,
unsigned long *encrypted_part_len));
_CK_DECLARE_FUNCTION(C_DecryptDigestUpdate,
(ck_session_handle_t session,
- unsigned char *encrypted_part,
+ unsigned char *encrypted_part,
unsigned long encrypted_part_len, unsigned char *part,
unsigned long *part_len));
_CK_DECLARE_FUNCTION(C_SignEncryptUpdate,
unsigned long *encrypted_part_len));
_CK_DECLARE_FUNCTION(C_DecryptVerifyUpdate,
(ck_session_handle_t session,
- unsigned char *encrypted_part,
+ unsigned char *encrypted_part,
unsigned long encrypted_part_len, unsigned char *part,
unsigned long *part_len));
unsigned long public_key_attribute_count,
struct ck_attribute *private_key_template,
unsigned long private_key_attribute_count,
- ck_object_handle_t *public_key,
- ck_object_handle_t *private_key));
+ ck_object_handle_t *public_key,
+ ck_object_handle_t *private_key));
_CK_DECLARE_FUNCTION(C_WrapKey,
(ck_session_handle_t session,
struct ck_mechanism *mechanism,
ck_lockmutex_t lock_mutex;
ck_unlockmutex_t unlock_mutex;
ck_flags_t flags;
- void *reserved;
+ void *reserved;
};
#define CKF_LIBRARY_CANT_CREATE_OS_THREADS (1UL << 0)
typedef unsigned char CK_BBOOL;
typedef unsigned long int CK_ULONG;
typedef long int CK_LONG;
-typedef CK_BYTE *CK_BYTE_PTR;
-typedef CK_CHAR *CK_CHAR_PTR;
-typedef CK_UTF8CHAR *CK_UTF8CHAR_PTR;
+typedef CK_BYTE *CK_BYTE_PTR;
+typedef CK_CHAR *CK_CHAR_PTR;
+typedef CK_UTF8CHAR *CK_UTF8CHAR_PTR;
typedef CK_ULONG *CK_ULONG_PTR;
-typedef void *CK_VOID_PTR;
-typedef void **CK_VOID_PTR_PTR;
+typedef void *CK_VOID_PTR;
+typedef void **CK_VOID_PTR_PTR;
#define CK_FALSE 0
#define CK_TRUE 1
#ifndef CK_DISABLE_TRUE_FALSE
typedef struct ck_otp_mechanism_info *CK_OTP_MECHANISM_INFO_PTR;
typedef struct ck_function_list CK_FUNCTION_LIST;
-typedef struct ck_function_list *CK_FUNCTION_LIST_PTR;
+typedef struct ck_function_list *CK_FUNCTION_LIST_PTR;
typedef struct ck_function_list **CK_FUNCTION_LIST_PTR_PTR;
typedef struct ck_c_initialize_args CK_C_INITIALIZE_ARGS;
ISC_LANG_BEGINDECLS
typedef pthread_t isc_thread_t;
-typedef void *isc_threadresult_t;
-typedef void *isc_threadarg_t;
+typedef void *isc_threadresult_t;
+typedef void *isc_threadarg_t;
typedef isc_threadresult_t (*isc_threadfunc_t)(isc_threadarg_t);
void
unsigned int magic;
char dirname[PATH_MAX];
isc_direntry_t entry;
- DIR *handle;
+ DIR *handle;
} isc_dir_t;
ISC_LANG_BEGINDECLS
uint32_t size;
isc_buffer_t buffer;
unsigned int maxsize;
- isc_mem_t *mctx;
- isc_socket_t *sock;
- isc_task_t *task;
+ isc_mem_t *mctx;
+ isc_socket_t *sock;
+ isc_task_t *task;
isc_taskaction_t action;
- void *arg;
+ void *arg;
isc_event_t event;
/* public (read-only) */
isc_result_t result;
struct isccc_sexpr {
unsigned int type;
union {
- char *as_string;
+ char *as_string;
isccc_dottedpair_t as_dottedpair;
isccc_region_t as_region;
} value;
***/
typedef union isccc_symvalue {
- void *as_pointer;
+ void *as_pointer;
int as_integer;
unsigned int as_uinteger;
} isccc_symvalue_t;
typedef void (*isccc_symtabundefaction_t)(char *key, unsigned int type,
isccc_symvalue_t value,
- void *userarg);
+ void *userarg);
typedef bool (*isccc_symtabforeachaction_t)(char *key, unsigned int type,
isccc_symvalue_t value,
- void *userarg);
+ void *userarg);
typedef enum {
isccc_symexists_reject = 0,
do { \
union { \
const void *k; \
- void *v; \
+ void *v; \
} _u; \
_u.k = konst; \
var = _u.v; \
* that needs to be interpreted at parsing time, like
* "directory".
*/
-typedef isc_result_t (*cfg_parsecallback_t)(const char *clausename,
+typedef isc_result_t (*cfg_parsecallback_t)(const char *clausename,
const cfg_obj_t *obj, void *arg);
/***
typedef isc_result_t(pluginlist_cb_t)(const cfg_obj_t *config,
const cfg_obj_t *obj,
- const char *plugin_path,
- const char *parameters,
- void *callback_data);
+ const char *plugin_path,
+ const char *parameters,
+ void *callback_data);
/*%<
* Function prototype for the callback used with cfg_pluginlist_foreach().
* Called once for each element of the list passed to cfg_pluginlist_foreach().
/*% A configuration object type definition. */
struct cfg_type {
- const char *name; /*%< For debugging purposes only */
+ const char *name; /*%< For debugging purposes only */
cfg_parsefunc_t parse;
cfg_printfunc_t print;
cfg_docfunc_t doc; /*%< Print grammar description */
- cfg_rep_t *rep; /*%< Data representation */
- const void *of; /*%< Additional data for meta-types */
+ cfg_rep_t *rep; /*%< Data representation */
+ const void *of; /*%< Additional data for meta-types */
};
/*% A keyword-type definition, for things like "port <integer>". */
typedef struct {
- const char *name;
+ const char *name;
const cfg_type_t *type;
} keyword_type_t;
* A configuration data representation.
*/
struct cfg_rep {
- const char *name; /*%< For debugging only */
+ const char *name; /*%< For debugging only */
cfg_freefunc_t free; /*%< How to free this kind of data. */
};
bool boolean;
cfg_map_t map;
cfg_list_t list;
- cfg_obj_t **tuple;
+ cfg_obj_t **tuple;
isc_sockaddr_t sockaddr;
struct {
isc_sockaddr_t sockaddr;
cfg_duration_t duration;
} value;
isc_refcount_t references; /*%< reference counter */
- const char *file;
+ const char *file;
unsigned int line;
cfg_parser_t *pctx;
};
/*% The parser object. */
struct cfg_parser {
- isc_mem_t *mctx;
- isc_log_t *lctx;
- isc_lex_t *lexer;
+ isc_mem_t *mctx;
+ isc_log_t *lctx;
+ isc_lex_t *lexer;
unsigned int errors;
unsigned int warnings;
isc_token_t token;
isc_refcount_t references;
cfg_parsecallback_t callback;
- void *callbackarg;
+ void *callbackarg;
};
/* Parser context flags */
/* Unlocked. */
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
ns_server_t *sctx;
isc_taskmgr_t *taskmgr;
isc_timermgr_t *timermgr;
- isc_task_t *excl;
+ isc_task_t *excl;
isc_refcount_t references;
int ncpus;
/*% nameserver client structure */
struct ns_client {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
bool allocated; /* Do we need to free it? */
- ns_server_t *sctx;
- ns_clientmgr_t *manager;
+ ns_server_t *sctx;
+ ns_clientmgr_t *manager;
ns_clientstate_t state;
int nupdates;
bool nodetach;
bool shuttingdown;
unsigned int attributes;
- isc_task_t *task;
- dns_view_t *view;
- dns_dispatch_t *dispatch;
- isc_nmhandle_t *handle; /* Permanent pointer to handle */
- isc_nmhandle_t *sendhandle; /* Waiting for send callback */
- isc_nmhandle_t *reqhandle; /* Waiting for request callback
+ isc_task_t *task;
+ dns_view_t *view;
+ dns_dispatch_t *dispatch;
+ isc_nmhandle_t *handle; /* Permanent pointer to handle */
+ isc_nmhandle_t *sendhandle; /* Waiting for send callback */
+ isc_nmhandle_t *reqhandle; /* Waiting for request callback
(query, update, notify) */
isc_nmhandle_t *fetchhandle; /* Waiting for recursive fetch */
isc_nmhandle_t *prefetchhandle; /* Waiting for prefetch / rpzfetch */
isc_result_t *resultp);
typedef struct ns_hook {
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
ns_hook_action_t action;
- void *action_data;
+ void *action_data;
ISC_LINK(struct ns_hook) link;
} ns_hook_t;
isc_sockaddr_t addr; /*%< Address and port. */
unsigned int flags; /*%< Interface flags */
char name[32]; /*%< Null terminated. */
- dns_dispatch_t *udpdispatch[MAX_UDP_DISPATCH];
+ dns_dispatch_t *udpdispatch[MAX_UDP_DISPATCH];
/*%< UDP dispatchers. */
isc_socket_t *tcpsocket; /*%< TCP socket. */
isc_nmsocket_t *udplistensocket;
#include <isc/log.h>
#include <isc/types.h>
-LIBNS_EXTERNAL_DATA extern isc_log_t *ns_lctx;
+LIBNS_EXTERNAL_DATA extern isc_log_t *ns_lctx;
LIBNS_EXTERNAL_DATA extern isc_logcategory_t ns_categories[];
LIBNS_EXTERNAL_DATA extern isc_logmodule_t ns_modules[];
/*% nameserver database version structure */
typedef struct ns_dbversion {
- dns_db_t *db;
+ dns_db_t *db;
dns_dbversion_t *version;
bool acl_checked;
bool queryok;
*/
typedef struct ns_query_recparam {
dns_rdatatype_t qtype;
- dns_name_t *qname;
+ dns_name_t *qname;
dns_fixedname_t fqname;
- dns_name_t *qdomain;
+ dns_name_t *qdomain;
dns_fixedname_t fqdomain;
} ns_query_recparam_t;
unsigned int attributes;
unsigned int restarts;
bool timerset;
- dns_name_t *qname;
- dns_name_t *origqname;
+ dns_name_t *qname;
+ dns_name_t *origqname;
dns_rdatatype_t qtype;
unsigned int dboptions;
unsigned int fetchoptions;
- dns_db_t *gluedb;
- dns_db_t *authdb;
- dns_zone_t *authzone;
+ dns_db_t *gluedb;
+ dns_db_t *authdb;
+ dns_zone_t *authzone;
bool authdbset;
bool isreferral;
isc_mutex_t fetchlock;
- dns_fetch_t *fetch;
- dns_fetch_t *prefetch;
- dns_rpz_st_t *rpz_st;
+ dns_fetch_t *fetch;
+ dns_fetch_t *prefetch;
+ dns_rpz_st_t *rpz_st;
isc_bufferlist_t namebufs;
ISC_LIST(ns_dbversion_t) activeversions;
ISC_LIST(ns_dbversion_t) freeversions;
dns_rdataset_t *dns64_aaaa;
dns_rdataset_t *dns64_sigaaaa;
- bool *dns64_aaaaok;
+ bool *dns64_aaaaok;
unsigned int dns64_aaaaoklen;
unsigned int dns64_options;
unsigned int dns64_ttl;
struct {
- dns_db_t *db;
- dns_zone_t *zone;
+ dns_db_t *db;
+ dns_zone_t *zone;
dns_dbnode_t *node;
dns_rdatatype_t qtype;
- dns_name_t *fname;
+ dns_name_t *fname;
dns_fixedname_t fixed;
isc_result_t result;
dns_rdataset_t *rdataset;
dns_fetchevent_t *event; /* recursion event */
- dns_db_t *db; /* zone or cache database */
+ dns_db_t *db; /* zone or cache database */
dns_dbversion_t *version; /* DB version */
- dns_dbnode_t *node; /* DB node */
+ dns_dbnode_t *node; /* DB node */
- dns_db_t *zdb; /* zone DB values, saved */
- dns_dbnode_t *znode; /* while searching cache */
- dns_name_t *zfname; /* for a better answer */
+ dns_db_t *zdb; /* zone DB values, saved */
+ dns_dbnode_t *znode; /* while searching cache */
+ dns_name_t *zfname; /* for a better answer */
dns_dbversion_t *zversion;
- dns_rdataset_t *zrdataset;
- dns_rdataset_t *zsigrdataset;
+ dns_rdataset_t *zrdataset;
+ dns_rdataset_t *zsigrdataset;
dns_rpz_st_t *rpz_st; /* RPZ state */
dns_zone_t *zone; /* zone to search */
*/
struct ns_server {
unsigned int magic;
- isc_mem_t *mctx;
+ isc_mem_t *mctx;
isc_refcount_t references;
/*% Test options and other configurables */
uint32_t options;
- dns_acl_t *blackholeacl;
- dns_acl_t *keepresporder;
+ dns_acl_t *blackholeacl;
+ dns_acl_t *keepresporder;
uint16_t udpsize;
uint16_t transfer_tcp_message_size;
bool interface_auto;
dns_tkeyctx_t *tkeyctx;
/*% Server id for NSID */
- char *server_id;
+ char *server_id;
ns_hostnamecb_t gethostname;
/*% Fuzzer callback */
* Type for callback functions that rank addresses.
*/
typedef int (*dns_addressorderfunc_t)(const isc_netaddr_t *address,
- const void *arg);
+ const void *arg);
/*%
* Return value type for setup_sortlist.
void
ns_sortlist_byaddrsetup(dns_acl_t *sortlist_acl, dns_aclenv_t *env,
- isc_netaddr_t *client_addr,
+ isc_netaddr_t *client_addr,
dns_addressorderfunc_t *orderp, const void **argp);
/*%<
* Find the sortlist statement in 'acl' that applies to 'clientaddr', if any.