check.c File Reference

#include <config.h>
#include <stdlib.h>
#include <isc/base64.h>
#include <isc/buffer.h>
#include <isc/file.h>
#include <isc/hex.h>
#include <isc/log.h>
#include <isc/mem.h>
#include <isc/netaddr.h>
#include <isc/parseint.h>
#include <isc/platform.h>
#include <isc/region.h>
#include <isc/result.h>
#include <isc/sockaddr.h>
#include <isc/string.h>
#include <isc/symtab.h>
#include <isc/util.h>
#include <dns/acl.h>
#include <dns/fixedname.h>
#include <dns/rdataclass.h>
#include <dns/rdatatype.h>
#include <dns/secalg.h>
#include <dst/dst.h>
#include <isccfg/aclconf.h>
#include <isccfg/cfg.h>
#include <bind9/check.h>

Go to the source code of this file.

Data Structures

struct  intervaltable
struct  optionstable
struct  keyalgorithms

Defines

#define MASTERZONE   1
#define SLAVEZONE   2
#define STUBZONE   4
#define HINTZONE   8
#define FORWARDZONE   16
#define DELEGATIONZONE   32
#define STATICSTUBZONE   64
#define REDIRECTZONE   128
#define STREDIRECTZONE   0
#define CHECKACL   512

Typedefs

typedef struct keyalgorithms algorithmtable

Enumerations

enum  optlevel_t { optlevel_config, optlevel_options, optlevel_view, optlevel_zone }

Functions

static isc_result_t fileexist (const cfg_obj_t *obj, isc_symtab_t *symtab, isc_boolean_t writeable, isc_log_t *logctxlogc)
static void freekey (char *key, unsigned int type, isc_symvalue_t value, void *userarg)
static isc_result_t check_orderent (const cfg_obj_t *ent, isc_log_t *logctx)
static isc_result_t check_order (const cfg_obj_t *options, isc_log_t *logctx)
static isc_result_t check_dual_stack (const cfg_obj_t *options, isc_log_t *logctx)
static isc_result_t check_forward (const cfg_obj_t *options, const cfg_obj_t *global, isc_log_t *logctx)
static isc_result_t disabled_algorithms (const cfg_obj_t *disabled, isc_log_t *logctx)
static isc_result_t disabled_ds_digests (const cfg_obj_t *disabled, isc_log_t *logctx)
static isc_result_t nameexist (const cfg_obj_t *obj, const char *name, int value, isc_symtab_t *symtab, const char *fmt, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t mustbesecure (const cfg_obj_t *secure, isc_symtab_t *symtab, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t checkacl (const char *aclname, cfg_aclconfctx_t *actx, const cfg_obj_t *zconfig, const cfg_obj_t *voptions, const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t check_viewacls (cfg_aclconfctx_t *actx, const cfg_obj_t *voptions, const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t check_dns64 (cfg_aclconfctx_t *actx, const cfg_obj_t *voptions, const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t check_recursionacls (cfg_aclconfctx_t *actx, const cfg_obj_t *voptions, const char *viewname, const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t check_filteraaaa (cfg_aclconfctx_t *actx, const cfg_obj_t *voptions, const char *viewname, const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t check_dscp (const cfg_obj_t *options, isc_log_t *logctx)
static isc_result_t check_name (const char *str)
static isc_result_t check_options (const cfg_obj_t *options, isc_log_t *logctx, isc_mem_t *mctx, optlevel_t optlevel)
static isc_result_t get_masters_def (const cfg_obj_t *cctx, const char *name, const cfg_obj_t **ret)
static isc_result_t validate_masters (const cfg_obj_t *obj, const cfg_obj_t *config, isc_uint32_t *countp, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t check_update_policy (const cfg_obj_t *policy, isc_log_t *logctx)
static isc_result_t check_nonzero (const cfg_obj_t *options, isc_log_t *logctx)
static isc_result_t check_zoneconf (const cfg_obj_t *zconfig, const cfg_obj_t *voptions, const cfg_obj_t *config, isc_symtab_t *symtab, isc_symtab_t *files, dns_rdataclass_t defclass, cfg_aclconfctx_t *actx, isc_log_t *logctx, isc_mem_t *mctx)
isc_result_t bind9_check_key (const cfg_obj_t *key, isc_log_t *logctx)
 Same as bind9_check_namedconf(), but for a single 'key' statement.
static isc_result_t check_keylist (const cfg_obj_t *keys, isc_symtab_t *symtab, isc_mem_t *mctx, isc_log_t *logctx)
static isc_boolean_t rndckey_exists (const cfg_obj_t *keylist, const char *keyname)
static isc_result_t check_servers (const cfg_obj_t *config, const cfg_obj_t *voptions, isc_symtab_t *symtab, isc_log_t *logctx)
static isc_result_t check_trusted_key (const cfg_obj_t *key, isc_boolean_t managed, isc_log_t *logctx)
static isc_result_t check_viewconf (const cfg_obj_t *config, const cfg_obj_t *voptions, const char *viewname, dns_rdataclass_t vclass, isc_symtab_t *files, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t bind9_check_logging (const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
static isc_result_t bind9_check_controlskeys (const cfg_obj_t *control, const cfg_obj_t *keylist, isc_log_t *logctx)
static isc_result_t bind9_check_controls (const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
isc_result_t bind9_check_namedconf (const cfg_obj_t *config, isc_log_t *logctx, isc_mem_t *mctx)
 Check the syntactic validity of a configuration parse tree generated from a named.conf file.

Variables

static const unsigned char zeros [16]
struct {
   const char *   v4
   const char *   v6
sources []
static const char * default_channels []


Detailed Description

Definition in file check.c.


Define Documentation

#define MASTERZONE   1

Definition at line 1447 of file check.c.

Referenced by check_zoneconf().

#define SLAVEZONE   2

Definition at line 1448 of file check.c.

Referenced by check_zoneconf().

#define STUBZONE   4

Definition at line 1449 of file check.c.

Referenced by check_zoneconf().

#define HINTZONE   8

Definition at line 1450 of file check.c.

Referenced by check_zoneconf().

#define FORWARDZONE   16

Definition at line 1451 of file check.c.

Referenced by check_zoneconf().

#define DELEGATIONZONE   32

Definition at line 1452 of file check.c.

Referenced by check_zoneconf().

#define STATICSTUBZONE   64

Definition at line 1453 of file check.c.

Referenced by check_zoneconf().

#define REDIRECTZONE   128

Definition at line 1454 of file check.c.

Referenced by check_zoneconf().

#define STREDIRECTZONE   0

Definition at line 1455 of file check.c.

Referenced by check_zoneconf().

#define CHECKACL   512

Definition at line 1456 of file check.c.

Referenced by check_zoneconf().


Typedef Documentation

typedef struct keyalgorithms algorithmtable


Enumeration Type Documentation

enum optlevel_t

Enumerator:
optlevel_config 
optlevel_options 
optlevel_view 
optlevel_zone 

Definition at line 757 of file check.c.


Function Documentation

static isc_result_t fileexist ( const cfg_obj_t obj,
isc_symtab_t symtab,
isc_boolean_t  writeable,
isc_log_t logctxlogc 
) [static]

Definition at line 2265 of file check.c.

References isc_symvalue::as_cpointer, cfg_obj_asstring(), cfg_obj_file(), cfg_obj_line(), cfg_obj_log(), ISC_LOG_ERROR, ISC_R_EXISTS, ISC_R_SUCCESS, isc_symexists_reject, isc_symtab_define(), and isc_symtab_lookup().

Referenced by check_zoneconf().

static void freekey ( char *  key,
unsigned int  type,
isc_symvalue_t  value,
void *  userarg 
) [static]

Definition at line 70 of file check.c.

References isc_mem_free, and UNUSED.

Referenced by add(), check_options(), and check_viewconf().

static isc_result_t check_orderent ( const cfg_obj_t ent,
isc_log_t logctx 
) [static]

Definition at line 77 of file check.c.

References isc_textregion::base, cfg_obj_asstring(), cfg_obj_isstring(), cfg_obj_log(), cfg_tuple_get(), DE_CONST, dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), dns_rdataclass_fromtext(), dns_rdatatype_fromtext(), dns_rootname, fixed, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_FAILURE, ISC_R_SUCCESS, isc_textregion::length, r, rdclass, and str.

Referenced by check_order().

static isc_result_t check_order ( const cfg_obj_t options,
isc_log_t logctx 
) [static]

Definition at line 160 of file check.c.

References cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), check_orderent(), and ISC_R_SUCCESS.

Referenced by bind9_check_namedconf(), and check_viewconf().

static isc_result_t check_dual_stack ( const cfg_obj_t options,
isc_log_t logctx 
) [static]

Definition at line 181 of file check.c.

References buffer, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_obj_asstring(), cfg_obj_asuint32(), cfg_obj_issockaddr(), cfg_obj_isuint32(), cfg_obj_log(), cfg_tuple_get(), dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), dns_rootname, fixed, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, ISC_R_FAILURE, ISC_R_SUCCESS, ISC_UINT16_MAX, name, and str.

Referenced by bind9_check_namedconf(), and check_viewconf().

static isc_result_t check_forward ( const cfg_obj_t options,
const cfg_obj_t global,
isc_log_t logctx 
) [static]

Definition at line 241 of file check.c.

References cfg_map_get(), cfg_obj_file(), cfg_obj_line(), cfg_obj_log(), ISC_LOG_ERROR, ISC_R_FAILURE, and ISC_R_SUCCESS.

Referenced by check_viewconf(), and check_zoneconf().

static isc_result_t disabled_algorithms ( const cfg_obj_t disabled,
isc_log_t logctx 
) [static]

Definition at line 268 of file check.c.

References isc_textregion::base, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_obj_asstring(), cfg_obj_log(), cfg_tuple_get(), DE_CONST, dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), dns_rootname, dns_secalg_fromtext(), fixed, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, ISC_R_SUCCESS, isc_textregion::length, name, r, and str.

Referenced by check_options().

static isc_result_t disabled_ds_digests ( const cfg_obj_t disabled,
isc_log_t logctx 
) [static]

Definition at line 315 of file check.c.

References isc_textregion::base, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_obj_asstring(), cfg_obj_log(), cfg_tuple_get(), DE_CONST, digest, dns_dsdigest_fromtext(), dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), dns_rootname, fixed, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, ISC_R_SUCCESS, isc_textregion::length, name, r, and str.

Referenced by check_options().

static isc_result_t nameexist ( const cfg_obj_t obj,
const char *  name,
int  value,
isc_symtab_t symtab,
const char *  fmt,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 363 of file check.c.

References isc_symvalue::as_cpointer, cfg_obj_file(), cfg_obj_line(), cfg_obj_log(), ISC_LOG_ERROR, isc_mem_free, isc_mem_strdup, ISC_R_EXISTS, ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_symexists_reject, isc_symtab_define(), isc_symtab_lookup(), key, and RUNTIME_CHECK.

Referenced by check_options(), check_zoneconf(), and mustbesecure().

static isc_result_t mustbesecure ( const cfg_obj_t secure,
isc_symtab_t symtab,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 397 of file check.c.

References cfg_obj_asstring(), cfg_obj_log(), cfg_tuple_get(), dns_fixedname_init, dns_fixedname_name, dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_fromtext(), dns_rootname, fixed, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, ISC_R_SUCCESS, name, namebuf, nameexist(), and str.

Referenced by check_options(), and configure_view().

static isc_result_t checkacl ( const char *  aclname,
cfg_aclconfctx_t actx,
const cfg_obj_t zconfig,
const cfg_obj_t voptions,
const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 429 of file check.c.

References cfg_acl_fromconfig(), cfg_map_get(), cfg_tuple_get(), dns_acl_detach(), and ISC_R_SUCCESS.

Referenced by check_viewacls(), and check_zoneconf().

static isc_result_t check_viewacls ( cfg_aclconfctx_t actx,
const cfg_obj_t voptions,
const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 460 of file check.c.

References checkacl(), and ISC_R_SUCCESS.

Referenced by check_viewconf().

static isc_result_t check_dns64 ( cfg_aclconfctx_t actx,
const cfg_obj_t voptions,
const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 483 of file check.c.

References AF_INET6, cfg_acl_fromconfig(), cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_map_getname(), cfg_obj_asnetprefix(), cfg_obj_assockaddr(), cfg_obj_log(), dns_acl_detach(), isc_netaddr::family, isc_netaddr::in6, ISC_LOG_ERROR, isc_netaddr_format(), ISC_NETADDR_FORMATSIZE, isc_netaddr_fromsockaddr(), ISC_R_FAILURE, ISC_R_SUCCESS, map, isc_netaddr::type, and zeros.

Referenced by check_viewconf().

static isc_result_t check_recursionacls ( cfg_aclconfctx_t actx,
const cfg_obj_t voptions,
const char *  viewname,
const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 585 of file check.c.

References cfg_acl_fromconfig(), cfg_map_get(), cfg_obj_asboolean(), cfg_obj_log(), dns_acl_detach(), dns_acl_isnone(), ISC_FALSE, ISC_LOG_WARNING, ISC_R_SUCCESS, and ISC_TRUE.

Referenced by check_viewconf().

static isc_result_t check_filteraaaa ( cfg_aclconfctx_t actx,
const cfg_obj_t voptions,
const char *  viewname,
const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 656 of file check.c.

References cfg_acl_fromconfig(), cfg_map_get(), cfg_obj_asboolean(), cfg_obj_isboolean(), cfg_obj_log(), dns_aaaa_break_dnssec, dns_aaaa_filter, dns_aaaa_ok, dns_acl_detach(), dns_acl_isnone(), ISC_LOG_WARNING, ISC_R_FAILURE, and ISC_R_SUCCESS.

Referenced by check_viewconf().

static isc_result_t check_dscp ( const cfg_obj_t options,
isc_log_t logctx 
) [static]

Definition at line 765 of file check.c.

References cfg_map_get(), cfg_obj_asuint32(), cfg_obj_log(), ISC_LOG_ERROR, ISC_R_FAILURE, and ISC_R_SUCCESS.

Referenced by check_options().

static isc_result_t check_name ( const char *  str  )  [static]

Definition at line 787 of file check.c.

References dns_fixedname_init, dns_fixedname_name, dns_name_fromstring(), and fixed.

Referenced by check_options().

static isc_result_t check_options ( const cfg_obj_t options,
isc_log_t logctx,
isc_mem_t mctx,
optlevel_t  optlevel 
) [static]

Definition at line 795 of file check.c.

References arg, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_obj_asstring(), cfg_obj_asuint32(), cfg_obj_isstring(), cfg_obj_isvoid(), cfg_obj_log(), cfg_tuple_get(), check_dscp(), check_name(), disabled_algorithms(), disabled_ds_digests(), dlv, dns_fixedname_init, dns_fixedname_name, dns_name_equal(), dns_name_fromstring(), dns_rootname, fixed, freekey(), ISC_AES128_KEYLENGTH, isc_buffer_init, isc_buffer_usedlength, ISC_FALSE, isc_hex_decodestring(), ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_FAILURE, ISC_R_NOSPACE, ISC_R_RANGE, ISC_R_SUCCESS, ISC_SHA1_DIGESTLENGTH, ISC_SHA256_DIGESTLENGTH, isc_symtab_create(), isc_symtab_destroy(), ISC_UINT32_MAX, mustbesecure(), name, nameexist(), optlevel_zone, secret, str, and symtab.

Referenced by bind9_check_namedconf(), check_viewconf(), and check_zoneconf().

static isc_result_t get_masters_def ( const cfg_obj_t cctx,
const char *  name,
const cfg_obj_t **  ret 
) [static]

Definition at line 1235 of file check.c.

References cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_obj_asstring(), cfg_tuple_get(), ISC_R_NOTFOUND, and ISC_R_SUCCESS.

Referenced by ns_config_getipandkeylist(), and validate_masters().

static isc_result_t validate_masters ( const cfg_obj_t obj,
const cfg_obj_t config,
isc_uint32_t countp,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 1261 of file check.c.

References isc_symvalue::as_cpointer, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_obj_asstring(), cfg_obj_issockaddr(), cfg_obj_isvoid(), cfg_obj_log(), cfg_tuple_get(), cleanup(), DE_CONST, get_masters_def(), ISC_FALSE, ISC_LOG_ERROR, isc_mem_get, isc_mem_put, ISC_R_EXISTS, ISC_R_FAILURE, ISC_R_SUCCESS, isc_symexists_reject, isc_symtab_create(), isc_symtab_define(), isc_symtab_destroy(), key, REQUIRE, and symtab.

Referenced by check_zoneconf().

static isc_result_t check_update_policy ( const cfg_obj_t policy,
isc_log_t logctx 
) [static]

Definition at line 1364 of file check.c.

References isc_textregion::base, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_obj_asstring(), cfg_obj_isstring(), cfg_obj_log(), cfg_tuple_get(), DE_CONST, dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), dns_name_iswildcard(), dns_rdatatype_fromtext(), dns_rootname, fixed, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, ISC_R_FAILURE, ISC_R_SUCCESS, isc_textregion::length, r, and str.

Referenced by check_zoneconf().

static isc_result_t check_nonzero ( const cfg_obj_t options,
isc_log_t logctx 
) [static]

Definition at line 1464 of file check.c.

References cfg_map_get(), cfg_obj_asuint32(), cfg_obj_log(), ISC_LOG_ERROR, ISC_R_FAILURE, and ISC_R_SUCCESS.

Referenced by check_viewconf(), and check_zoneconf().

static isc_result_t check_zoneconf ( const cfg_obj_t zconfig,
const cfg_obj_t voptions,
const cfg_obj_t config,
isc_symtab_t symtab,
isc_symtab_t files,
dns_rdataclass_t  defclass,
cfg_aclconfctx_t actx,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 1487 of file check.c.

References allowed(), arg, isc_textregion::base, cfg_acl_fromconfig(), cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_count(), cfg_map_get(), cfg_obj_asboolean(), cfg_obj_assockaddr(), cfg_obj_asstring(), cfg_obj_asuint32(), cfg_obj_isboolean(), cfg_obj_isstring(), cfg_obj_log(), cfg_tuple_get(), check_forward(), check_nonzero(), check_options(), check_update_policy(), checkacl(), CHECKACL, DE_CONST, DELEGATIONZONE, dialup(), dns_acl_detach(), dns_acl_isnone(), dns_fixedname_init, dns_fixedname_name, dns_masterformat_map, dns_masterformat_raw, dns_masterformat_text, DNS_NAME_DOWNCASE, dns_name_equal(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_fromtext(), dns_name_issubdomain(), dns_rdataclass_fromtext(), dns_rootname, fileexist(), FORWARDZONE, HINTZONE, INSIST, isc_buffer_add, isc_buffer_constinit, ISC_FALSE, isc_file_isdirectory(), ISC_LOG_ERROR, ISC_LOG_WARNING, isc_netaddr_fromsockaddr(), isc_netaddr_getzone(), ISC_R_FAILURE, ISC_R_FILENOTFOUND, ISC_R_INVALIDFILE, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_result_totext(), isc_sockaddr_getport(), ISC_TRUE, isc_textregion::length, MASTERZONE, name, namebuf, nameexist(), optlevel_zone, r, REDIRECTZONE, root, SLAVEZONE, STATICSTUBZONE, str, STREDIRECTZONE, STUBZONE, validate_masters(), and zname.

Referenced by check_viewconf().

isc_result_t bind9_check_key ( const cfg_obj_t key,
isc_log_t logctx 
)

Same as bind9_check_namedconf(), but for a single 'key' statement.

Definition at line 2173 of file check.c.

References algorithm, algorithms, cfg_map_get(), cfg_map_getname(), cfg_obj_asstring(), cfg_obj_log(), digestbits, isc_base64_decodestring(), isc_buffer_init, ISC_LOG_ERROR, ISC_LOG_WARNING, isc_parse_uint16(), ISC_R_FAILURE, ISC_R_NOTFOUND, ISC_R_RANGE, ISC_R_SUCCESS, isc_result_totext(), name, and keyalgorithms::name.

Referenced by check_keylist(), and get_rndckey().

static isc_result_t check_keylist ( const cfg_obj_t keys,
isc_symtab_t symtab,
isc_mem_t mctx,
isc_log_t logctx 
) [static]

Definition at line 2312 of file check.c.

References isc_symvalue::as_cpointer, bind9_check_key(), cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_getname(), cfg_obj_asstring(), cfg_obj_file(), cfg_obj_line(), cfg_obj_log(), dns_fixedname_init, dns_fixedname_name, dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_fromtext(), dns_rootname, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, isc_mem_free, isc_mem_strdup, ISC_R_EXISTS, ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_symexists_reject, isc_symtab_define(), isc_symtab_lookup(), key, name, namebuf, and RUNTIME_CHECK.

Referenced by check_viewconf().

static isc_boolean_t rndckey_exists ( const cfg_obj_t keylist,
const char *  keyname 
) [static]

Definition at line 2396 of file check.c.

References cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_getname(), cfg_obj_asstring(), ISC_FALSE, ISC_TRUE, and str.

Referenced by bind9_check_controlskeys().

static isc_result_t check_servers ( const cfg_obj_t config,
const cfg_obj_t voptions,
isc_symtab_t symtab,
isc_log_t logctx 
) [static]

Definition at line 2417 of file check.c.

References cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_map_getname(), cfg_obj_asnetprefix(), cfg_obj_asstring(), cfg_obj_file(), cfg_obj_line(), cfg_obj_log(), dns_fixedname_init, dns_fixedname_name, dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_fromtext(), dns_rootname, isc_netaddr::family, INSIST, isc_buffer_add, isc_buffer_constinit, ISC_LOG_ERROR, isc_netaddr_equal(), isc_netaddr_format(), ISC_NETADDR_FORMATSIZE, isc_netaddr_prefixok(), ISC_R_FAILURE, ISC_R_SUCCESS, isc_symtab_lookup(), namebuf, servers, sources, v1, v2, and v4.

Referenced by check_viewconf().

static isc_result_t check_trusted_key ( const cfg_obj_t key,
isc_boolean_t  managed,
isc_log_t logctx 
) [static]

Definition at line 2527 of file check.c.

References isc_region::base, cfg_obj_asstring(), cfg_obj_asuint32(), cfg_obj_log(), cfg_tuple_get(), dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), dns_rootname, DST_ALG_RSAMD5, DST_ALG_RSASHA1, isc_base64_decodestring(), isc_buffer_add, isc_buffer_constinit, isc_buffer_init, isc_buffer_usedregion, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_FAILURE, ISC_R_SUCCESS, isc_result_totext(), keystr, isc_region::length, and r.

Referenced by check_viewconf().

static isc_result_t check_viewconf ( const cfg_obj_t config,
const cfg_obj_t voptions,
const char *  viewname,
dns_rdataclass_t  vclass,
isc_symtab_t files,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 2610 of file check.c.

References cfg_aclconfctx_create(), cfg_aclconfctx_detach(), cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_obj_asboolean(), cfg_obj_isboolean(), cfg_obj_log(), check_dns64(), check_dual_stack(), check_filteraaaa(), check_forward(), check_keylist(), check_nonzero(), check_options(), check_order(), check_recursionacls(), check_servers(), check_trusted_key(), check_viewacls(), check_zoneconf(), cleanup(), freekey(), ISC_FALSE, ISC_LOG_WARNING, ISC_R_EXISTS, ISC_R_FAILURE, ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_symtab_create(), isc_symtab_destroy(), ISC_TRUE, keylist, optlevel_config, optlevel_view, symtab, and zone.

Referenced by bind9_check_namedconf().

static isc_result_t bind9_check_logging ( const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 2869 of file check.c.

References isc_symvalue::as_cpointer, categories, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_map_getname(), cfg_obj_asstring(), cfg_obj_log(), cfg_tuple_get(), default_channels, ISC_FALSE, isc_log_categorybyname(), ISC_LOG_ERROR, ISC_R_FAILURE, ISC_R_SUCCESS, isc_symexists_replace, isc_symtab_create(), isc_symtab_define(), isc_symtab_destroy(), isc_symtab_lookup(), and symtab.

Referenced by bind9_check_namedconf().

static isc_result_t bind9_check_controlskeys ( const cfg_obj_t control,
const cfg_obj_t keylist,
isc_log_t logctx 
) [static]

Definition at line 2977 of file check.c.

References cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_obj_asstring(), cfg_obj_isvoid(), cfg_obj_log(), cfg_tuple_get(), ISC_LOG_ERROR, ISC_R_NOTFOUND, ISC_R_SUCCESS, key, and rndckey_exists().

Referenced by bind9_check_controls().

static isc_result_t bind9_check_controls ( const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
) [static]

Definition at line 3007 of file check.c.

References bind9_check_controlskeys(), cfg_acl_fromconfig(), cfg_aclconfctx_create(), cfg_aclconfctx_detach(), cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_obj_asstring(), cfg_obj_asuint32(), cfg_obj_log(), cfg_tuple_get(), dns_acl_detach(), ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_NOSPACE, ISC_R_SUCCESS, isc_sockaddr_frompath(), and keylist.

Referenced by bind9_check_namedconf().

isc_result_t bind9_check_namedconf ( const cfg_obj_t config,
isc_log_t logctx,
isc_mem_t mctx 
)

Check the syntactic validity of a configuration parse tree generated from a named.conf file.

Requires:

Returns:

Definition at line 3104 of file check.c.

References isc_symvalue::as_cpointer, isc_textregion::base, bind9_check_controls(), bind9_check_logging(), cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_obj_asstring(), cfg_obj_file(), cfg_obj_isstring(), cfg_obj_line(), cfg_obj_log(), cfg_tuple_get(), check_dual_stack(), check_options(), check_order(), check_viewconf(), DE_CONST, dns_rdataclass_fromtext(), ISC_FALSE, ISC_LOG_ERROR, ISC_R_EXISTS, ISC_R_FAILURE, ISC_R_SUCCESS, isc_symexists_reject, isc_symtab_create(), isc_symtab_define(), isc_symtab_destroy(), isc_symtab_lookup(), ISC_TRUE, key, isc_textregion::length, name, optlevel_options, r, RUNTIME_CHECK, and symtab.

Referenced by load_configuration(), and main().


Variable Documentation

const unsigned char zeros[16] [static]

Definition at line 480 of file check.c.

Referenced by check_dns64(), dns_dns64_create(), ip2name(), and isc_netaddr_prefixok().

const char* v4

Definition at line 2381 of file check.c.

Referenced by check_servers().

const char* v6

Definition at line 2382 of file check.c.

struct { ... } sources[] [static]

Referenced by check_servers(), cleanup_entropy(), and setup_entropy().

const char* default_channels[] [static]

Initial value:

 {
        "default_syslog",
        "default_stderr",
        "default_debug",
        "null",
        NULL
}

Definition at line 2860 of file check.c.

Referenced by bind9_check_logging().


Generated on Tue Apr 28 17:41:07 2015 by Doxygen 1.5.4 for BIND9 Internals 9.11.0pre-alpha