#include <config.h>
#include <errno.h>
#include <isc/file.h>
#include <isc/hex.h>
#include <isc/mutex.h>
#include <isc/pool.h>
#include <isc/print.h>
#include <isc/random.h>
#include <isc/ratelimiter.h>
#include <isc/refcount.h>
#include <isc/rwlock.h>
#include <isc/serial.h>
#include <isc/stats.h>
#include <isc/stdtime.h>
#include <isc/strerror.h>
#include <isc/string.h>
#include <isc/taskpool.h>
#include <isc/thread.h>
#include <isc/timer.h>
#include <isc/util.h>
#include <dns/acache.h>
#include <dns/acl.h>
#include <dns/adb.h>
#include <dns/callbacks.h>
#include <dns/db.h>
#include <dns/dbiterator.h>
#include <dns/dlz.h>
#include <dns/dnssec.h>
#include <dns/events.h>
#include <dns/journal.h>
#include <dns/keydata.h>
#include <dns/keytable.h>
#include <dns/keyvalues.h>
#include <dns/log.h>
#include <dns/master.h>
#include <dns/masterdump.h>
#include <dns/message.h>
#include <dns/name.h>
#include <dns/nsec.h>
#include <dns/nsec3.h>
#include <dns/peer.h>
#include <dns/private.h>
#include <dns/rbt.h>
#include <dns/rcode.h>
#include <dns/rdata.h>
#include <dns/rdataclass.h>
#include <dns/rdatalist.h>
#include <dns/rdataset.h>
#include <dns/rdatasetiter.h>
#include <dns/rdatastruct.h>
#include <dns/rdatatype.h>
#include <dns/request.h>
#include <dns/resolver.h>
#include <dns/result.h>
#include <dns/rriterator.h>
#include <dns/soa.h>
#include <dns/ssu.h>
#include <dns/stats.h>
#include <dns/time.h>
#include <dns/tsig.h>
#include <dns/update.h>
#include <dns/xfrin.h>
#include <dns/zone.h>
#include <dns/zt.h>
#include <dst/dst.h>
Go to the source code of this file.
Data Structures | |
struct | zonediff_t |
struct | dns_unreachable |
struct | dns_zonemgr |
struct | dns_notify |
Hold notify state. More... | |
struct | dns_stub |
dns_stub holds state while performing a 'stub' transfer. 'db' is the zone's 'db' or a new one if this is the initial transfer. More... | |
struct | dns_load |
Hold load state. More... | |
struct | dns_forward |
Hold forward state. More... | |
struct | dns_io |
Hold IO request state. More... | |
struct | dns_signing |
Hold state for when we are signing a zone with a new DNSKEY as result of an update. More... | |
struct | dns_nsec3chain |
struct | dns_keyfetch |
struct | dns_asyncload |
Hold state for an asynchronous load. More... | |
struct | dns_include |
Reference to an include file encountered during loading. More... | |
struct | nsec3param |
struct | ssevent |
struct | secure_event |
struct | keydone |
Defines | |
#define | ZONE_MAGIC ISC_MAGIC('Z', 'O', 'N', 'E') |
#define | DNS_ZONE_VALID(zone) ISC_MAGIC_VALID(zone, ZONE_MAGIC) |
#define | NOTIFY_MAGIC ISC_MAGIC('N', 't', 'f', 'y') |
#define | DNS_NOTIFY_VALID(notify) ISC_MAGIC_VALID(notify, NOTIFY_MAGIC) |
#define | STUB_MAGIC ISC_MAGIC('S', 't', 'u', 'b') |
#define | DNS_STUB_VALID(stub) ISC_MAGIC_VALID(stub, STUB_MAGIC) |
#define | ZONEMGR_MAGIC ISC_MAGIC('Z', 'm', 'g', 'r') |
#define | DNS_ZONEMGR_VALID(stub) ISC_MAGIC_VALID(stub, ZONEMGR_MAGIC) |
#define | LOAD_MAGIC ISC_MAGIC('L', 'o', 'a', 'd') |
#define | DNS_LOAD_VALID(load) ISC_MAGIC_VALID(load, LOAD_MAGIC) |
#define | FORWARD_MAGIC ISC_MAGIC('F', 'o', 'r', 'w') |
#define | DNS_FORWARD_VALID(load) ISC_MAGIC_VALID(load, FORWARD_MAGIC) |
#define | IO_MAGIC ISC_MAGIC('Z', 'm', 'I', 'O') |
#define | DNS_IO_VALID(load) ISC_MAGIC_VALID(load, IO_MAGIC) |
#define | RANGE(a, min, max) (((a) < (min)) ? (min) : ((a) < (max) ? (a) : (max))) |
Ensure 'a' is at least 'min' but not more than 'max'. | |
#define | NSEC3REMOVE(x) (((x) & DNS_NSEC3FLAG_REMOVE) != 0) |
#define | REVOKE(x) ((dst_key_flags(x) & DNS_KEYFLAG_REVOKE) != 0) |
Key flags. | |
#define | KSK(x) ((dst_key_flags(x) & DNS_KEYFLAG_KSK) != 0) |
#define | ALG(x) dst_key_alg(x) |
#define | DNS_DEFAULT_IDLEIN 3600 |
1 hour | |
#define | DNS_DEFAULT_IDLEOUT 3600 |
1 hour | |
#define | MAX_XFER_TIME (2*3600) |
Documented default is 2 hours. | |
#define | RESIGN_DELAY 3600 |
1 hour | |
#define | DNS_MAX_EXPIRE 14515200 |
24 weeks | |
#define | DNS_DUMP_DELAY 900 |
15 minutes | |
#define | DNS_ZONE_CHECKLOCK |
#define | LOCK_ZONE(z) |
#define | UNLOCK_ZONE(z) do { (z)->locked = ISC_FALSE; UNLOCK(&(z)->lock); } while (0) |
#define | LOCKED_ZONE(z) ((z)->locked) |
#define | TRYLOCK_ZONE(result, z) |
#define | ZONEDB_INITLOCK(l) isc_mutex_init(l) |
#define | ZONEDB_DESTROYLOCK(l) DESTROYLOCK(l) |
#define | ZONEDB_LOCK(l, t) LOCK(l) |
#define | ZONEDB_UNLOCK(l, t) UNLOCK(l) |
#define | zonediff_init(z, d) |
#define | DNS_ZONE_FLAG(z, f) (ISC_TF(((z)->flags & (f)) != 0)) |
#define | DNS_ZONE_SETFLAG(z, f) |
#define | DNS_ZONE_CLRFLAG(z, f) |
#define | DNS_ZONEFLG_REFRESH 0x00000001U |
refresh check in progress | |
#define | DNS_ZONEFLG_NEEDDUMP 0x00000002U |
zone need consolidation | |
#define | DNS_ZONEFLG_USEVC 0x00000004U |
use tcp for refresh query | |
#define | DNS_ZONEFLG_DUMPING 0x00000008U |
a dump is in progress | |
#define | DNS_ZONEFLG_HASINCLUDE 0x00000010U |
$INCLUDE in zone file | |
#define | DNS_ZONEFLG_LOADED 0x00000020U |
database has loaded | |
#define | DNS_ZONEFLG_EXITING 0x00000040U |
zone is being destroyed | |
#define | DNS_ZONEFLG_EXPIRED 0x00000080U |
zone has expired | |
#define | DNS_ZONEFLG_NEEDREFRESH 0x00000100U |
refresh check needed | |
#define | DNS_ZONEFLG_UPTODATE 0x00000200U |
zone contents are uptodate | |
#define | DNS_ZONEFLG_NEEDNOTIFY 0x00000400U |
need to send out notify messages | |
#define | DNS_ZONEFLG_DIFFONRELOAD 0x00000800U |
generate a journal diff on reload | |
#define | DNS_ZONEFLG_NOMASTERS 0x00001000U |
an attempt to refresh a zone with no masters occurred | |
#define | DNS_ZONEFLG_LOADING 0x00002000U |
load from disk in progress | |
#define | DNS_ZONEFLG_HAVETIMERS 0x00004000U |
timer values have been set from SOA (if not set, we are still using default timer values) | |
#define | DNS_ZONEFLG_FORCEXFER 0x00008000U |
Force a zone xfer. | |
#define | DNS_ZONEFLG_NOREFRESH 0x00010000U |
#define | DNS_ZONEFLG_DIALNOTIFY 0x00020000U |
#define | DNS_ZONEFLG_DIALREFRESH 0x00040000U |
#define | DNS_ZONEFLG_SHUTDOWN 0x00080000U |
#define | DNS_ZONEFLAG_NOIXFR 0x00100000U |
IXFR failed, force AXFR. | |
#define | DNS_ZONEFLG_FLUSH 0x00200000U |
#define | DNS_ZONEFLG_NOEDNS 0x00400000U |
#define | DNS_ZONEFLG_USEALTXFRSRC 0x00800000U |
#define | DNS_ZONEFLG_SOABEFOREAXFR 0x01000000U |
#define | DNS_ZONEFLG_NEEDCOMPACT 0x02000000U |
#define | DNS_ZONEFLG_REFRESHING 0x04000000U |
Refreshing keydata. | |
#define | DNS_ZONEFLG_THAW 0x08000000U |
#define | DNS_ZONEFLG_LOADPENDING 0x10000000U |
Loading scheduled. | |
#define | DNS_ZONEFLG_NODELAY 0x20000000U |
#define | DNS_ZONEFLG_SENDSECURE 0x40000000U |
#define | DNS_ZONEFLG_NEEDSTARTUPNOTIFY 0x80000000U |
need to send out notify due to the zone just being loaded for the first time. | |
#define | DNS_ZONE_OPTION(z, o) (((z)->options & (o)) != 0) |
#define | DNS_ZONE_OPTION2(z, o) (((z)->options2 & (o)) != 0) |
#define | DNS_ZONEKEY_OPTION(z, o) (((z)->keyopts & (o)) != 0) |
#define | DNS_ZONELOADFLAG_NOSTAT 0x00000001U |
#define | DNS_ZONELOADFLAG_THAW 0x00000002U |
#define | UNREACH_CHACHE_SIZE 10U |
#define | UNREACH_HOLD_TIME 600 |
#define | CHECK(op) |
#define | DNS_NOTIFY_NOSOA 0x0001U |
#define | DNS_NOTIFY_STARTUP 0x0002U |
#define | HOUR 3600 |
#define | DAY (24*HOUR) |
#define | MONTH (30*DAY) |
#define | SEND_BUFFER_SIZE 2048 |
#define | ENTER zone_debuglog(zone, me, 1, "enter") |
#define | DNS_ZONE_JITTER_ADD(a, b, c) |
#define | DNS_ZONE_TIME_ADD(a, b, c) |
#define | ZONES_PER_TASK 100 |
#define | ZONES_PER_MCTX 1000 |
#define | PENDINGFLAGS (DNS_NSEC3FLAG_CREATE|DNS_NSEC3FLAG_INITIAL) |
Typedefs | |
typedef struct dns_notify | dns_notify_t |
typedef struct dns_stub | dns_stub_t |
typedef struct dns_load | dns_load_t |
typedef struct dns_forward | dns_forward_t |
typedef struct nsec3param | nsec3param_t |
Functions | |
typedef | ISC_LIST (dns_forward_t) |
static void | zone_settimer (dns_zone_t *, isc_time_t *) |
static void | cancel_refresh (dns_zone_t *) |
static void | zone_debuglog (dns_zone_t *zone, const char *, int debuglevel, const char *msg,...) ISC_FORMAT_PRINTF(4 |
static void static void | notify_log (dns_zone_t *zone, int level, const char *fmt,...) ISC_FORMAT_PRINTF(3 |
static void static void static void | queue_xfrin (dns_zone_t *zone) |
static isc_result_t | update_one_rr (dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff, dns_diffop_t op, dns_name_t *name, dns_ttl_t ttl, dns_rdata_t *rdata) |
static void | zone_unload (dns_zone_t *zone) |
static void | zone_expire (dns_zone_t *zone) |
static void | zone_iattach (dns_zone_t *source, dns_zone_t **target) |
static void | zone_idetach (dns_zone_t **zonep) |
static isc_result_t | zone_replacedb (dns_zone_t *zone, dns_db_t *db, isc_boolean_t dump) |
static void | zone_attachdb (dns_zone_t *zone, dns_db_t *db) |
static void | zone_detachdb (dns_zone_t *zone) |
static isc_result_t | default_journal (dns_zone_t *zone) |
static void | zone_xfrdone (dns_zone_t *zone, isc_result_t result) |
static isc_result_t | zone_postload (dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime, isc_result_t result) |
static void | zone_needdump (dns_zone_t *zone, unsigned int delay) |
static void | zone_shutdown (isc_task_t *, isc_event_t *) |
static void | zone_loaddone (void *arg, isc_result_t result) |
static isc_result_t | zone_startload (dns_db_t *db, dns_zone_t *zone, isc_time_t loadtime) |
static void | zone_namerd_tostr (dns_zone_t *zone, char *buf, size_t length) |
static void | zone_name_tostr (dns_zone_t *zone, char *buf, size_t length) |
static void | zone_rdclass_tostr (dns_zone_t *zone, char *buf, size_t length) |
static void | zone_viewname_tostr (dns_zone_t *zone, char *buf, size_t length) |
static isc_result_t | zone_send_secureserial (dns_zone_t *zone, isc_uint32_t serial) |
static void | refresh_callback (isc_task_t *, isc_event_t *) |
static void | stub_callback (isc_task_t *, isc_event_t *) |
static void | queue_soa_query (dns_zone_t *zone) |
static void | soa_query (isc_task_t *, isc_event_t *) |
static void | ns_query (dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) |
static int | message_count (dns_message_t *msg, dns_section_t section, dns_rdatatype_t type) |
static void | notify_cancel (dns_zone_t *zone) |
static void | notify_find_address (dns_notify_t *notify) |
static void | notify_send (dns_notify_t *notify) |
static isc_result_t | notify_createmessage (dns_zone_t *zone, unsigned int flags, dns_message_t **messagep) |
static void | notify_done (isc_task_t *task, isc_event_t *event) |
static void | notify_send_toaddr (isc_task_t *task, isc_event_t *event) |
static isc_result_t | zone_dump (dns_zone_t *, isc_boolean_t) |
static void | got_transfer_quota (isc_task_t *task, isc_event_t *event) |
static isc_result_t | zmgr_start_xfrin_ifquota (dns_zonemgr_t *zmgr, dns_zone_t *zone) |
static void | zmgr_resume_xfrs (dns_zonemgr_t *zmgr, isc_boolean_t multi) |
static void | zonemgr_free (dns_zonemgr_t *zmgr) |
static isc_result_t | zonemgr_getio (dns_zonemgr_t *zmgr, isc_boolean_t high, isc_task_t *task, isc_taskaction_t action, void *arg, dns_io_t **iop) |
static void | zonemgr_putio (dns_io_t **iop) |
static void | zonemgr_cancelio (dns_io_t *io) |
static isc_result_t | zone_get_from_db (dns_zone_t *zone, dns_db_t *db, unsigned int *nscount, unsigned int *soacount, isc_uint32_t *serial, isc_uint32_t *refresh, isc_uint32_t *retry, isc_uint32_t *expire, isc_uint32_t *minimum, unsigned int *errors) |
static void | zone_freedbargs (dns_zone_t *zone) |
static void | forward_callback (isc_task_t *task, isc_event_t *event) |
static void | zone_saveunique (dns_zone_t *zone, const char *path, const char *templat) |
static void | zone_maintenance (dns_zone_t *zone) |
static void | zone_notify (dns_zone_t *zone, isc_time_t *now) |
static void | dump_done (void *arg, isc_result_t result) |
static isc_result_t | zone_signwithkey (dns_zone_t *zone, dns_secalg_t algorithm, isc_uint16_t keyid, isc_boolean_t delete) |
static isc_result_t | delete_nsec (dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node, dns_name_t *name, dns_diff_t *diff) |
static void | zone_rekey (dns_zone_t *zone) |
static isc_result_t | zone_send_securedb (dns_zone_t *zone, dns_db_t *db) |
static void | setrl (isc_ratelimiter_t *rl, unsigned int *rate, unsigned int value) |
typedef | ISC_LIST (nsec3param_t) |
static void | inc_stats (dns_zone_t *zone, isc_statscounter_t counter) |
Increment resolver-related statistics counters. Zone must be locked. | |
isc_result_t | dns_zone_create (dns_zone_t **zonep, isc_mem_t *mctx) |
Creates a new empty zone and attach '*zonep' to it. | |
static void | zone_free (dns_zone_t *zone) |
static isc_boolean_t | inline_secure (dns_zone_t *zone) |
static isc_boolean_t | inline_raw (dns_zone_t *zone) |
void | dns_zone_setclass (dns_zone_t *zone, dns_rdataclass_t rdclass) |
Sets the class of a zone. This operation can only be performed once on a zone. | |
dns_rdataclass_t | dns_zone_getclass (dns_zone_t *zone) |
Returns the current zone class. | |
void | dns_zone_setnotifytype (dns_zone_t *zone, dns_notifytype_t notifytype) |
Sets zone notify method to "notifytype". | |
isc_result_t | dns_zone_getserial2 (dns_zone_t *zone, isc_uint32_t *serialp) |
isc_uint32_t | dns_zone_getserial (dns_zone_t *zone) |
Returns the current serial number of the zone. On success, the SOA serial of the zone will be copied into '*serialp'. dns_zone_getserial() cannot catch failure cases and is deprecated by dns_zone_getserial2(). | |
void | dns_zone_settype (dns_zone_t *zone, dns_zonetype_t type) |
Sets the zone type. This operation can only be performed once on a zone. | |
isc_result_t | dns_zone_getdbtype (dns_zone_t *zone, char ***argv, isc_mem_t *mctx) |
Returns the current dbtype. isc_mem_free() should be used to free 'argv' after use. | |
isc_result_t | dns_zone_setdbtype (dns_zone_t *zone, unsigned int dbargc, const char *const *dbargv) |
Sets the database type to dbargv[0] and database arguments to subsequent dbargv elements. 'db_type' is not checked to see if it is a valid database type. | |
void | dns_zone_setview (dns_zone_t *zone, dns_view_t *view) |
Associate the zone with a view. | |
dns_view_t * | dns_zone_getview (dns_zone_t *zone) |
Returns the zone's associated view. | |
isc_result_t | dns_zone_setorigin (dns_zone_t *zone, const dns_name_t *origin) |
Sets the zones origin to 'origin'. | |
void | dns_zone_setacache (dns_zone_t *zone, dns_acache_t *acache) |
Associate the zone with an additional cache. | |
static isc_result_t | dns_zone_setstring (dns_zone_t *zone, char **field, const char *value) |
isc_result_t | dns_zone_setfile (dns_zone_t *zone, const char *file) |
isc_result_t | dns_zone_setfile2 (dns_zone_t *zone, const char *file, dns_masterformat_t format) |
isc_result_t | dns_zone_setfile3 (dns_zone_t *zone, const char *file, dns_masterformat_t format, const dns_master_style_t *style) |
Sets the name of the master file in the format of 'format' from which the zone loads its database to 'file'. | |
const char * | dns_zone_getfile (dns_zone_t *zone) |
Gets the name of the zone's master file, if any. | |
dns_ttl_t | dns_zone_getmaxttl (dns_zone_t *zone) |
Gets the max ttl of the zone. | |
void | dns_zone_setmaxttl (dns_zone_t *zone, dns_ttl_t maxttl) |
isc_result_t | dns_zone_setjournal (dns_zone_t *zone, const char *myjournal) |
Sets the filename used for journaling updates / IXFR transfers. The default journal name is set by dns_zone_setfile() to be "file.jnl". If 'myjournal' is NULL, the zone will have no journal name. | |
char * | dns_zone_getjournal (dns_zone_t *zone) |
Returns the journal name associated with this zone. If no journal has been set this will be NULL. | |
isc_boolean_t | dns_zone_isdynamic (dns_zone_t *zone, isc_boolean_t ignore_freeze) |
Load the origin names for a writeable DLZ database. | |
isc_result_t | dns_zone_rpz_enable (dns_zone_t *zone, dns_rpz_zones_t *rpzs, dns_rpz_num_t rpz_num) |
Return the number include files that were encountered during load. If the number is greater than zero, 'includesp' will point to an array containing the filenames. | |
dns_rpz_num_t | dns_zone_get_rpz_num (dns_zone_t *zone) |
If a zone is a response policy zone, mark its new database. | |
void | dns_zone_rpz_enable_db (dns_zone_t *zone, dns_db_t *db) |
Set the response policy associated with a zone. | |
static isc_boolean_t | zone_touched (dns_zone_t *zone) |
static isc_result_t | zone_load (dns_zone_t *zone, unsigned int flags, isc_boolean_t locked) |
isc_result_t | dns_zone_load (dns_zone_t *zone) |
isc_result_t | dns_zone_loadnew (dns_zone_t *zone) |
static void | zone_asyncload (isc_task_t *task, isc_event_t *event) |
isc_result_t | dns_zone_asyncload (dns_zone_t *zone, dns_zt_zoneloaded_t done, void *arg) |
Cause the database to be loaded from its backing store asynchronously. Other zone maintenance functions are suspended until this is complete. When finished, 'done' is called to inform the caller, with 'arg' as its first argument and 'zone' as its second. (Normally, 'arg' is expected to point to the zone table but is left undefined for testing purposes.). | |
isc_boolean_t | dns__zone_loadpending (dns_zone_t *zone) |
Indicates whether the zone is waiting to be loaded asynchronously. (Not currently intended for use outside of this module and associated tests.). | |
isc_result_t | dns_zone_loadandthaw (dns_zone_t *zone) |
Cause the database to be loaded from its backing store. Confirm that the minimum requirements for the zone type are met, otherwise DNS_R_BADZONE is returned. | |
static unsigned int | get_master_options (dns_zone_t *zone) |
static void | zone_registerinclude (const char *filename, void *arg) |
static void | zone_gotreadhandle (isc_task_t *task, isc_event_t *event) |
static void | get_raw_serial (dns_zone_t *raw, dns_masterrawheader_t *rawdata) |
static void | zone_gotwritehandle (isc_task_t *task, isc_event_t *event) |
static void | zone_setrawdata (dns_zone_t *zone, dns_masterrawheader_t *header) |
void | dns_zone_setrawdata (dns_zone_t *zone, dns_masterrawheader_t *header) |
Set the NSEC3 parameters for the zone. | |
static isc_boolean_t | zone_check_mx (dns_zone_t *zone, dns_db_t *db, dns_name_t *name, dns_name_t *owner) |
static isc_boolean_t | zone_check_srv (dns_zone_t *zone, dns_db_t *db, dns_name_t *name, dns_name_t *owner) |
static isc_boolean_t | zone_check_glue (dns_zone_t *zone, dns_db_t *db, dns_name_t *name, dns_name_t *owner) |
static isc_boolean_t | zone_rrset_check_dup (dns_zone_t *zone, dns_name_t *owner, dns_rdataset_t *rdataset) |
static isc_boolean_t | zone_check_dup (dns_zone_t *zone, dns_db_t *db) |
static isc_boolean_t | isspf (const dns_rdata_t *rdata) |
static isc_boolean_t | integrity_checks (dns_zone_t *zone, dns_db_t *db) |
static void | zone_check_dnskeys (dns_zone_t *zone, dns_db_t *db) |
static void | resume_signingwithkey (dns_zone_t *zone) |
static isc_result_t | zone_addnsec3chain (dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) |
static void | resume_addnsec3chain (dns_zone_t *zone) |
static void | set_resigntime (dns_zone_t *zone) |
static isc_result_t | check_nsec3param (dns_zone_t *zone, dns_db_t *db) |
static void | set_refreshkeytimer (dns_zone_t *zone, dns_rdata_keydata_t *key, isc_stdtime_t now, isc_boolean_t force) |
static isc_result_t | create_keydata (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff, dns_keytable_t *keytable, dns_keynode_t **keynodep, isc_boolean_t *changed) |
static isc_result_t | delete_keydata (dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff, dns_name_t *name, dns_rdataset_t *rdataset) |
static isc_result_t | compute_tag (dns_name_t *name, dns_rdata_dnskey_t *dnskey, isc_mem_t *mctx, dns_keytag_t *tag) |
static void | trust_key (dns_zone_t *zone, dns_name_t *keyname, dns_rdata_dnskey_t *dnskey, isc_mem_t *mctx) |
static void | fail_secure (dns_zone_t *zone, dns_name_t *keyname) |
static void | load_secroots (dns_zone_t *zone, dns_name_t *name, dns_rdataset_t *rdataset) |
static isc_result_t | do_one_tuple (dns_difftuple_t **tuple, dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff) |
static isc_result_t | update_soa_serial (dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff, isc_mem_t *mctx, dns_updatemethod_t method) |
static isc_result_t | zone_journal (dns_zone_t *zone, dns_diff_t *diff, isc_uint32_t *sourceserial, const char *caller) |
static isc_result_t | add_soa (dns_zone_t *zone, dns_db_t *db) |
static isc_result_t | sync_keyzone (dns_zone_t *zone, dns_db_t *db) |
isc_result_t | dns_zone_synckeyzone (dns_zone_t *zone) |
Set the data to be included in the header when the zone is dumped in binary format. | |
static void | maybe_send_secure (dns_zone_t *zone) |
static isc_boolean_t | zone_unchanged (dns_db_t *db1, dns_db_t *db2, isc_mem_t *mctx) |
static isc_boolean_t | exit_check (dns_zone_t *zone) |
static isc_boolean_t | zone_check_ns (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, isc_boolean_t logit) |
static isc_result_t | zone_count_ns_rr (dns_zone_t *zone, dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, unsigned int *nscount, unsigned int *errors, isc_boolean_t logit) |
static isc_result_t | zone_load_soa_rr (dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, unsigned int *soacount, isc_uint32_t *serial, isc_uint32_t *refresh, isc_uint32_t *retry, isc_uint32_t *expire, isc_uint32_t *minimum) |
void | dns_zone_attach (dns_zone_t *source, dns_zone_t **target) |
Attach '*target' to 'source' incrementing its external reference count. | |
void | dns_zone_detach (dns_zone_t **zonep) |
Detach from a zone decrementing its external reference count. If this was the last external reference to the zone it will be shut down and eventually freed. | |
void | dns_zone_iattach (dns_zone_t *source, dns_zone_t **target) |
Attach '*target' to 'source' incrementing its internal reference count. This is intended for use by operations such as zone transfers that need to prevent the zone object from being freed but not from shutting down. | |
void | dns_zone_idetach (dns_zone_t **zonep) |
Detach from a zone decrementing its internal reference count. If there are no more internal or external references to the zone, it will be freed. | |
isc_mem_t * | dns_zone_getmctx (dns_zone_t *zone) |
Get the memory context of a zone. | |
dns_zonemgr_t * | dns_zone_getmgr (dns_zone_t *zone) |
If 'zone' is managed return the zone manager otherwise NULL. | |
void | dns_zone_setflag (dns_zone_t *zone, unsigned int flags, isc_boolean_t value) |
Sets ('value' == 'ISC_TRUE') / clears ('value' == 'IS_FALSE') zone flags. Valid flag bits are DNS_ZONE_F_*. | |
void | dns_zone_setoption (dns_zone_t *zone, unsigned int option, isc_boolean_t value) |
void | dns_zone_setoption2 (dns_zone_t *zone, unsigned int option, isc_boolean_t value) |
Set the given options on ('value' == ISC_TRUE) or off ('value' == ISC_FALSE). | |
unsigned int | dns_zone_getoptions (dns_zone_t *zone) |
unsigned int | dns_zone_getoptions2 (dns_zone_t *zone) |
Returns the current zone options. | |
void | dns_zone_setkeyopt (dns_zone_t *zone, unsigned int keyopt, isc_boolean_t value) |
Set key options on ('value' == ISC_TRUE) or off ('value' == ISC_FALSE). | |
unsigned int | dns_zone_getkeyopts (dns_zone_t *zone) |
Returns the current zone key options. | |
isc_result_t | dns_zone_setxfrsource4 (dns_zone_t *zone, const isc_sockaddr_t *xfrsource) |
isc_sockaddr_t * | dns_zone_getxfrsource4 (dns_zone_t *zone) |
isc_result_t | dns_zone_setxfrsource4dscp (dns_zone_t *zone, isc_dscp_t dscp) |
isc_dscp_t | dns_zone_getxfrsource4dscp (dns_zone_t *zone) |
isc_result_t | dns_zone_setxfrsource6 (dns_zone_t *zone, const isc_sockaddr_t *xfrsource) |
/ Get the DSCP value associated with the transfer/alt-transfer source. | |
isc_sockaddr_t * | dns_zone_getxfrsource6 (dns_zone_t *zone) |
isc_dscp_t | dns_zone_getxfrsource6dscp (dns_zone_t *zone) |
isc_result_t | dns_zone_setxfrsource6dscp (dns_zone_t *zone, isc_dscp_t dscp) |
/ Get the DSCP value associated with the transfer/alt-transfer source. | |
isc_result_t | dns_zone_setaltxfrsource4 (dns_zone_t *zone, const isc_sockaddr_t *altxfrsource) |
Set the source address to be used in IPv4 zone transfers. | |
isc_sockaddr_t * | dns_zone_getaltxfrsource4 (dns_zone_t *zone) |
Returns the source address set by a previous dns_zone_setxfrsource4 call, or the default of inaddr_any, port 0. | |
isc_result_t | dns_zone_setaltxfrsource4dscp (dns_zone_t *zone, isc_dscp_t dscp) |
Set the DSCP value associated with the transfer/alt-transfer source. | |
isc_dscp_t | dns_zone_getaltxfrsource4dscp (dns_zone_t *zone) |
isc_result_t | dns_zone_setaltxfrsource6 (dns_zone_t *zone, const isc_sockaddr_t *altxfrsource) |
Set the source address to be used in IPv6 zone transfers. | |
isc_sockaddr_t * | dns_zone_getaltxfrsource6 (dns_zone_t *zone) |
Returns the source address set by a previous dns_zone_setxfrsource6 call, or the default of in6addr_any, port 0. | |
isc_result_t | dns_zone_setaltxfrsource6dscp (dns_zone_t *zone, isc_dscp_t dscp) |
Set the DSCP value associated with the transfer/alt-transfer source. | |
isc_dscp_t | dns_zone_getaltxfrsource6dscp (dns_zone_t *zone) |
isc_result_t | dns_zone_setnotifysrc4 (dns_zone_t *zone, const isc_sockaddr_t *notifysrc) |
Set the source address to be used with IPv4 NOTIFY messages. | |
isc_sockaddr_t * | dns_zone_getnotifysrc4 (dns_zone_t *zone) |
Returns the source address set by a previous dns_zone_setnotifysrc4 call, or the default of inaddr_any, port 0. | |
isc_result_t | dns_zone_setnotifysrc4dscp (dns_zone_t *zone, isc_dscp_t dscp) |
/ Get the DCSP value associated with the notify source. | |
isc_dscp_t | dns_zone_getnotifysrc4dscp (dns_zone_t *zone) |
isc_result_t | dns_zone_setnotifysrc6 (dns_zone_t *zone, const isc_sockaddr_t *notifysrc) |
/ Get the DSCP value associated with the notify source. | |
isc_sockaddr_t * | dns_zone_getnotifysrc6 (dns_zone_t *zone) |
Returns the source address set by a previous dns_zone_setnotifysrc6 call, or the default of in6addr_any, port 0. | |
static isc_boolean_t | same_addrs (const isc_sockaddr_t *old, const isc_sockaddr_t *new, isc_uint32_t count) |
static isc_boolean_t | same_keynames (dns_name_t **old, dns_name_t **new, isc_uint32_t count) |
static void | clear_addresskeylist (isc_sockaddr_t **addrsp, isc_dscp_t **dscpsp, dns_name_t ***keynamesp, unsigned int *countp, isc_mem_t *mctx) |
static isc_result_t | set_addrkeylist (unsigned int count, const isc_sockaddr_t *addrs, isc_sockaddr_t **newaddrsp, const isc_dscp_t *dscp, isc_dscp_t **newdscpp, dns_name_t **names, dns_name_t ***newnamesp, isc_mem_t *mctx) |
isc_result_t | dns_zone_setnotifysrc6dscp (dns_zone_t *zone, isc_dscp_t dscp) |
/ Get the DCSP value associated with the notify source. | |
isc_dscp_t | dns_zone_getnotifysrc6dscp (dns_zone_t *zone) |
isc_result_t | dns_zone_setalsonotify (dns_zone_t *zone, const isc_sockaddr_t *notify, isc_uint32_t count) |
isc_result_t | dns_zone_setalsonotifywithkeys (dns_zone_t *zone, const isc_sockaddr_t *notify, dns_name_t **keynames, isc_uint32_t count) |
isc_result_t | dns_zone_setalsonotifydscpkeys (dns_zone_t *zone, const isc_sockaddr_t *notify, const isc_dscp_t *dscps, dns_name_t **keynames, isc_uint32_t count) |
Set the list of additional servers to be notified when a zone changes. To clear the list use 'count = 0'. | |
isc_result_t | dns_zone_setmasters (dns_zone_t *zone, const isc_sockaddr_t *masters, isc_uint32_t count) |
isc_result_t | dns_zone_setmasterswithkeys (dns_zone_t *zone, const isc_sockaddr_t *masters, dns_name_t **keynames, isc_uint32_t count) |
Set the list of master servers for the zone. | |
isc_result_t | dns_zone_getdb (dns_zone_t *zone, dns_db_t **dpb) |
Attach '*dbp' to the database to if it exists otherwise return DNS_R_NOTLOADED. | |
void | dns_zone_setdb (dns_zone_t *zone, dns_db_t *db) |
Sets the zone database to 'db'. | |
void | dns_zone_maintenance (dns_zone_t *zone) |
Perform regular maintenance on the zone. This is called as a result of a zone being managed. | |
static isc_boolean_t | was_dumping (dns_zone_t *zone) |
static isc_result_t | find_zone_keys (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, isc_mem_t *mctx, unsigned int maxkeys, dst_key_t **keys, unsigned int *nkeys) |
static isc_result_t | offline (dns_db_t *db, dns_dbversion_t *ver, zonediff_t *zonediff, dns_name_t *name, dns_ttl_t ttl, dns_rdata_t *rdata) |
static void | set_key_expiry_warning (dns_zone_t *zone, isc_stdtime_t when, isc_stdtime_t now) |
static isc_boolean_t | delsig_ok (dns_rdata_rrsig_t *rrsig_ptr, dst_key_t **keys, unsigned int nkeys, isc_boolean_t *warn) |
static isc_result_t | del_sigs (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, dns_rdatatype_t type, zonediff_t *zonediff, dst_key_t **keys, unsigned int nkeys, isc_stdtime_t now, isc_boolean_t incremental) |
static isc_result_t | add_sigs (dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, dns_rdatatype_t type, dns_diff_t *diff, dst_key_t **keys, unsigned int nkeys, isc_mem_t *mctx, isc_stdtime_t inception, isc_stdtime_t expire, isc_boolean_t check_ksk, isc_boolean_t keyset_kskonly) |
static void | zone_resigninc (dns_zone_t *zone) |
static isc_result_t | next_active (dns_db_t *db, dns_dbversion_t *version, dns_name_t *oldname, dns_name_t *newname, isc_boolean_t bottom) |
static isc_boolean_t | signed_with_key (dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, dns_rdatatype_t type, dst_key_t *key) |
static isc_result_t | add_nsec (dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, dns_dbnode_t *node, dns_ttl_t ttl, isc_boolean_t bottom, dns_diff_t *diff) |
static isc_result_t | sign_a_node (dns_db_t *db, dns_name_t *name, dns_dbnode_t *node, dns_dbversion_t *version, isc_boolean_t build_nsec3, isc_boolean_t build_nsec, dst_key_t *key, isc_stdtime_t inception, isc_stdtime_t expire, unsigned int minimum, isc_boolean_t is_ksk, isc_boolean_t keyset_kskonly, isc_boolean_t *delegation, dns_diff_t *diff, isc_int32_t *signatures, isc_mem_t *mctx) |
static isc_result_t | updatesecure (dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, dns_ttl_t minimum, isc_boolean_t update_only, dns_diff_t *diff) |
static isc_result_t | updatesignwithkey (dns_zone_t *zone, dns_signing_t *signing, dns_dbversion_t *version, isc_boolean_t build_nsec3, dns_ttl_t minimum, dns_diff_t *diff) |
static isc_result_t | fixup_nsec3param (dns_db_t *db, dns_dbversion_t *ver, dns_nsec3chain_t *chain, isc_boolean_t active, dns_rdatatype_t privatetype, dns_diff_t *diff) |
static isc_result_t | deletematchingnsec3 (dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node, dns_name_t *name, const dns_rdata_nsec3param_t *param, dns_diff_t *diff) |
static isc_result_t | need_nsec_chain (dns_db_t *db, dns_dbversion_t *ver, const dns_rdata_nsec3param_t *param, isc_boolean_t *answer) |
static isc_result_t | update_sigs (dns_diff_t *diff, dns_db_t *db, dns_dbversion_t *version, dst_key_t *zone_keys[], unsigned int nkeys, dns_zone_t *zone, isc_stdtime_t inception, isc_stdtime_t expire, isc_stdtime_t now, isc_boolean_t check_ksk, isc_boolean_t keyset_kskonly, zonediff_t *zonediff) |
static void | zone_nsec3chain (dns_zone_t *zone) |
static isc_result_t | del_sig (dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, dns_dbnode_t *node, unsigned int nkeys, dns_secalg_t algorithm, isc_uint16_t keyid, dns_diff_t *diff) |
static void | zone_sign (dns_zone_t *zone) |
static isc_result_t | normalize_key (dns_rdata_t *rr, dns_rdata_t *target, unsigned char *data, int size) |
static isc_boolean_t | matchkey (dns_rdataset_t *rdset, dns_rdata_t *rr) |
static isc_stdtime_t | refresh_time (dns_keyfetch_t *kfetch, isc_boolean_t retry) |
static isc_result_t | minimal_update (dns_keyfetch_t *kfetch, dns_dbversion_t *ver, dns_diff_t *diff) |
static isc_boolean_t | revocable (dns_keyfetch_t *kfetch, dns_rdata_keydata_t *keydata) |
static void | keyfetch_done (isc_task_t *task, isc_event_t *event) |
static void | zone_refreshkeys (dns_zone_t *zone) |
void | dns_zone_markdirty (dns_zone_t *zone) |
Mark a zone as 'dirty'. | |
void | dns_zone_expire (dns_zone_t *zone) |
Mark the zone as expired. If the zone requires dumping cause it to be initiated. Set the refresh and retry intervals to there default values and unload the zone. | |
void | dns_zone_refresh (dns_zone_t *zone) |
Initiate zone up to date checks. The zone must already be being managed. | |
isc_result_t | dns_zone_flush (dns_zone_t *zone) |
Write the zone to database if there are uncommitted changes. | |
isc_result_t | dns_zone_dump (dns_zone_t *zone) |
Write the zone to database. | |
static isc_result_t | dumptostream (dns_zone_t *zone, FILE *fd, const dns_master_style_t *style, dns_masterformat_t format, const isc_uint32_t rawversion) |
isc_result_t | dns_zone_dumptostream3 (dns_zone_t *zone, FILE *fd, dns_masterformat_t format, const dns_master_style_t *style, const isc_uint32_t rawversion) |
Write the zone to stream 'fd' in the specified 'format'. If the 'format' is dns_masterformat_text (RFC1035), 'style' also specifies the file style (e.g., &dns_master_style_default). | |
isc_result_t | dns_zone_dumptostream2 (dns_zone_t *zone, FILE *fd, dns_masterformat_t format, const dns_master_style_t *style) |
isc_result_t | dns_zone_dumptostream (dns_zone_t *zone, FILE *fd) |
isc_result_t | dns_zone_fulldumptostream (dns_zone_t *zone, FILE *fd) |
The same as dns_zone_dumptostream, but dumps the zone with different dump settings (dns_master_style_full). | |
void | dns_zone_unload (dns_zone_t *zone) |
detach the database from the zone structure. | |
static void | forward_cancel (dns_zone_t *zone) |
void | dns_zone_setminrefreshtime (dns_zone_t *zone, isc_uint32_t val) |
Set the minimum refresh time. | |
void | dns_zone_setmaxrefreshtime (dns_zone_t *zone, isc_uint32_t val) |
Set the maximum refresh time. | |
void | dns_zone_setminretrytime (dns_zone_t *zone, isc_uint32_t val) |
Set the minimum retry time. | |
void | dns_zone_setmaxretrytime (dns_zone_t *zone, isc_uint32_t val) |
Set the maximum retry time. | |
static isc_boolean_t | notify_isqueued (dns_zone_t *zone, unsigned int flags, dns_name_t *name, isc_sockaddr_t *addr, dns_tsigkey_t *key) |
static isc_boolean_t | notify_isself (dns_zone_t *zone, isc_sockaddr_t *dst) |
static void | notify_destroy (dns_notify_t *notify, isc_boolean_t locked) |
static isc_result_t | notify_create (isc_mem_t *mctx, unsigned int flags, dns_notify_t **notifyp) |
static void | process_adb_event (isc_task_t *task, isc_event_t *ev) |
static isc_result_t | notify_send_queue (dns_notify_t *notify, isc_boolean_t startup) |
void | dns_zone_notify (dns_zone_t *zone) |
Generate notify events for this zone. | |
static isc_result_t | save_nsrrset (dns_message_t *message, dns_name_t *name, dns_db_t *db, dns_dbversion_t *version) |
static void | get_edns_expire (dns_zone_t *zone, dns_message_t *message, isc_uint32_t *expirep) |
static void | setmodtime (dns_zone_t *zone, isc_time_t *expiretime) |
static isc_result_t | create_query (dns_zone_t *zone, dns_rdatatype_t rdtype, dns_message_t **messagep) |
static isc_result_t | add_opt (dns_message_t *message, isc_uint16_t udpsize, isc_boolean_t reqnsid, isc_boolean_t reqexpire) |
static void | zone_timer (isc_task_t *task, isc_event_t *event) |
isc_result_t | dns_zone_notifyreceive (dns_zone_t *zone, isc_sockaddr_t *from, dns_message_t *msg) |
Tell the zone that it has received a NOTIFY message from another server. This may cause some zone maintenance activity to occur. | |
void | dns_zone_setnotifyacl (dns_zone_t *zone, dns_acl_t *acl) |
/ Get the DSCP value associated with the notify source. | |
void | dns_zone_setqueryacl (dns_zone_t *zone, dns_acl_t *acl) |
Sets the query acl list for the zone. | |
void | dns_zone_setqueryonacl (dns_zone_t *zone, dns_acl_t *acl) |
Sets the query-on acl list for the zone. | |
void | dns_zone_setupdateacl (dns_zone_t *zone, dns_acl_t *acl) |
Sets the update acl list for the zone. | |
void | dns_zone_setforwardacl (dns_zone_t *zone, dns_acl_t *acl) |
Sets the forward unsigned updates acl list for the zone. | |
void | dns_zone_setxfracl (dns_zone_t *zone, dns_acl_t *acl) |
Sets the transfer acl list for the zone. | |
dns_acl_t * | dns_zone_getnotifyacl (dns_zone_t *zone) |
Returns the current notify acl or NULL. | |
dns_acl_t * | dns_zone_getqueryacl (dns_zone_t *zone) |
Returns the current query acl or NULL. | |
dns_acl_t * | dns_zone_getqueryonacl (dns_zone_t *zone) |
Returns the current query-on acl or NULL. | |
dns_acl_t * | dns_zone_getupdateacl (dns_zone_t *zone) |
Returns the current update acl or NULL. | |
dns_acl_t * | dns_zone_getforwardacl (dns_zone_t *zone) |
Returns the current forward unsigned updates acl or NULL. | |
dns_acl_t * | dns_zone_getxfracl (dns_zone_t *zone) |
Returns the current transfer acl or NULL. | |
void | dns_zone_clearupdateacl (dns_zone_t *zone) |
Clear the current update acl. | |
void | dns_zone_clearforwardacl (dns_zone_t *zone) |
Clear the current forward unsigned updates acl. | |
void | dns_zone_clearnotifyacl (dns_zone_t *zone) |
Clear the current notify acl. | |
void | dns_zone_clearqueryacl (dns_zone_t *zone) |
Clear the current query acl. | |
void | dns_zone_clearqueryonacl (dns_zone_t *zone) |
Clear the current query-on acl. | |
void | dns_zone_clearxfracl (dns_zone_t *zone) |
Clear the current transfer acl. | |
isc_boolean_t | dns_zone_getupdatedisabled (dns_zone_t *zone) |
Return update disabled. Transient unless called when running in isc_task_exclusive() mode. | |
void | dns_zone_setupdatedisabled (dns_zone_t *zone, isc_boolean_t state) |
Set update disabled. Should only be called only when running in isc_task_exclusive() mode. Failure to do so may result in updates being committed after the call has been made. | |
isc_boolean_t | dns_zone_getzeronosoattl (dns_zone_t *zone) |
Return zero-no-soa-ttl status. | |
void | dns_zone_setzeronosoattl (dns_zone_t *zone, isc_boolean_t state) |
Set zero-no-soa-ttl status. | |
void | dns_zone_setchecknames (dns_zone_t *zone, dns_severity_t severity) |
Set the severity of name checking when loading a zone. | |
dns_severity_t | dns_zone_getchecknames (dns_zone_t *zone) |
Return the current severity of name checking. | |
void | dns_zone_setjournalsize (dns_zone_t *zone, isc_int32_t size) |
Sets the journal size for the zone. | |
isc_int32_t | dns_zone_getjournalsize (dns_zone_t *zone) |
Return the journal size as set with a previous call to dns_zone_setjournalsize(). | |
void | dns_zone_name (dns_zone_t *zone, char *buf, size_t length) |
Log the message 'msg...' at 'level', including text that identifies the message as applying to 'zone'. | |
void | dns_zone_logc (dns_zone_t *zone, isc_logcategory_t *category, int level, const char *fmt,...) |
void | dns_zone_log (dns_zone_t *zone, int level, const char *fmt,...) |
void | dns_zone_setmaxxfrin (dns_zone_t *zone, isc_uint32_t maxxfrin) |
Set the maximum time (in seconds) that a zone transfer in (AXFR/IXFR) of this zone will use before being aborted. | |
isc_uint32_t | dns_zone_getmaxxfrin (dns_zone_t *zone) |
Returns the maximum transfer time for this zone. This will be either the value set by the last call to dns_zone_setmaxxfrin() or the default value of 1 hour. | |
void | dns_zone_setmaxxfrout (dns_zone_t *zone, isc_uint32_t maxxfrout) |
Set the maximum time (in seconds) that a zone transfer out (AXFR/IXFR) of this zone will use before being aborted. | |
isc_uint32_t | dns_zone_getmaxxfrout (dns_zone_t *zone) |
Returns the maximum transfer time for this zone. This will be either the value set by the last call to dns_zone_setmaxxfrout() or the default value of 1 hour. | |
dns_zonetype_t | dns_zone_gettype (dns_zone_t *zone) |
Returns the type of the zone (master/slave/etc.). | |
dns_name_t * | dns_zone_getorigin (dns_zone_t *zone) |
Returns the value of the origin. | |
void | dns_zone_settask (dns_zone_t *zone, isc_task_t *task) |
Give a zone a task to work with. Any current task will be detached. | |
void | dns_zone_gettask (dns_zone_t *zone, isc_task_t **target) |
Attach '*target' to the zone's task. | |
void | dns_zone_setidlein (dns_zone_t *zone, isc_uint32_t idlein) |
| |
isc_uint32_t | dns_zone_getidlein (dns_zone_t *zone) |
Requires:. | |
void | dns_zone_setidleout (dns_zone_t *zone, isc_uint32_t idleout) |
| |
isc_uint32_t | dns_zone_getidleout (dns_zone_t *zone) |
Requires:. | |
static void | update_log_cb (void *arg, dns_zone_t *zone, int level, const char *message) |
static isc_result_t | sync_secure_journal (dns_zone_t *zone, dns_zone_t *raw, dns_journal_t *journal, isc_uint32_t start, isc_uint32_t end, dns_difftuple_t **soatuplep, dns_diff_t *diff) |
static isc_result_t | sync_secure_db (dns_zone_t *seczone, dns_zone_t *raw, dns_db_t *secdb, dns_dbversion_t *secver, dns_difftuple_t **soatuple, dns_diff_t *diff) |
static void | receive_secure_serial (isc_task_t *task, isc_event_t *event) |
static isc_result_t | checkandaddsoa (dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, dns_rdataset_t *rdataset, isc_uint32_t oldserial) |
static isc_result_t | save_nsec3param (dns_zone_t *zone, nsec3paramlist_t *nsec3list) |
static isc_result_t | restore_nsec3param (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version, nsec3paramlist_t *nsec3list) |
static void | receive_secure_db (isc_task_t *task, isc_event_t *event) |
isc_result_t | dns_zone_replacedb (dns_zone_t *zone, dns_db_t *db, isc_boolean_t dump) |
Replace the database of "zone" with a new database "db". | |
void | dns_zone_getssutable (dns_zone_t *zone, dns_ssutable_t **table) |
Get the simple-secure-update policy table. | |
void | dns_zone_setssutable (dns_zone_t *zone, dns_ssutable_t *table) |
Set / clear the simple-secure-update policy table. | |
void | dns_zone_setsigvalidityinterval (dns_zone_t *zone, isc_uint32_t interval) |
Set the zone's RRSIG validity interval. This is the length of time for which DNSSEC signatures created as a result of dynamic updates to secure zones will remain valid, in seconds. | |
isc_uint32_t | dns_zone_getsigvalidityinterval (dns_zone_t *zone) |
Get the zone's RRSIG validity interval. | |
void | dns_zone_setsigresigninginterval (dns_zone_t *zone, isc_uint32_t interval) |
Set the zone's RRSIG re-signing interval. A dynamic zone's RRSIG's will be re-signed 'interval' amount of time before they expire. | |
isc_uint32_t | dns_zone_getsigresigninginterval (dns_zone_t *zone) |
Get the zone's RRSIG re-signing interval. | |
static void | forward_destroy (dns_forward_t *forward) |
static isc_result_t | sendtomaster (dns_forward_t *forward) |
isc_result_t | dns_zone_forwardupdate (dns_zone_t *zone, dns_message_t *msg, dns_updatecallback_t callback, void *callback_arg) |
Forward 'msg' to each master in turn until we get an answer or we have exhausted the list of masters. 'callback' will be called with ISC_R_SUCCESS if we get an answer and the returned message will be passed as 'answer_message', otherwise a non ISC_R_SUCCESS result code will be passed and answer_message will be NULL. The callback function is responsible for destroying 'answer_message'. (callback)(callback_arg, result, answer_message);. | |
isc_result_t | dns_zone_next (dns_zone_t *zone, dns_zone_t **next) |
Find the next zone in the list of managed zones. | |
isc_result_t | dns_zone_first (dns_zonemgr_t *zmgr, dns_zone_t **first) |
Find the first zone in the list of managed zones. | |
isc_result_t | dns_zonemgr_create (isc_mem_t *mctx, isc_taskmgr_t *taskmgr, isc_timermgr_t *timermgr, isc_socketmgr_t *socketmgr, dns_zonemgr_t **zmgrp) |
Create a zone manager. Note: the zone manager will not be able to manage any zones until dns_zonemgr_setsize() has been run. | |
isc_result_t | dns_zonemgr_createzone (dns_zonemgr_t *zmgr, dns_zone_t **zonep) |
Allocate a new zone using a memory context from the zone manager's memory context pool. | |
isc_result_t | dns_zonemgr_managezone (dns_zonemgr_t *zmgr, dns_zone_t *zone) |
Bring the zone under control of a zone manager. | |
void | dns_zonemgr_releasezone (dns_zonemgr_t *zmgr, dns_zone_t *zone) |
Release 'zone' from the managed by 'zmgr'. 'zmgr' is implicitly detached from 'zone'. | |
void | dns_zonemgr_attach (dns_zonemgr_t *source, dns_zonemgr_t **target) |
Attach '*target' to 'source' incrementing its external reference count. | |
void | dns_zonemgr_detach (dns_zonemgr_t **zmgrp) |
Detach from a zone manager. | |
isc_result_t | dns_zonemgr_forcemaint (dns_zonemgr_t *zmgr) |
Force zone maintenance of all zones managed by 'zmgr' at its earliest convenience. | |
void | dns_zonemgr_resumexfrs (dns_zonemgr_t *zmgr) |
Attempt to start any stalled zone transfers. | |
void | dns_zonemgr_shutdown (dns_zonemgr_t *zmgr) |
Shut down the zone manager. | |
static isc_result_t | mctxinit (void **target, void *arg) |
static void | mctxfree (void **target) |
isc_result_t | dns_zonemgr_setsize (dns_zonemgr_t *zmgr, int num_zones) |
Set the size of the zone manager task pool. This must be run before zmgr can be used for managing zones. Currently, it can only be run once; the task pool cannot be resized. | |
void | dns_zonemgr_settransfersin (dns_zonemgr_t *zmgr, isc_uint32_t value) |
Set the maximum number of simultaneous transfers in allowed by the zone manager. | |
isc_uint32_t | dns_zonemgr_getttransfersin (dns_zonemgr_t *zmgr) |
Return the maximum number of simultaneous transfers in allowed. | |
void | dns_zonemgr_settransfersperns (dns_zonemgr_t *zmgr, isc_uint32_t value) |
Set the number of zone transfers allowed per nameserver. | |
isc_uint32_t | dns_zonemgr_getttransfersperns (dns_zonemgr_t *zmgr) |
Return the number of transfers allowed per nameserver. | |
void | dns_zonemgr_setiolimit (dns_zonemgr_t *zmgr, isc_uint32_t iolimit) |
Set the number of simultaneous file descriptors available for reading and writing masterfiles. | |
isc_uint32_t | dns_zonemgr_getiolimit (dns_zonemgr_t *zmgr) |
Get the number of simultaneous file descriptors available for reading and writing masterfiles. | |
void | dns_zonemgr_setnotifyrate (dns_zonemgr_t *zmgr, unsigned int value) |
Set the number of NOTIFY requests sent per second. | |
void | dns_zonemgr_setstartupnotifyrate (dns_zonemgr_t *zmgr, unsigned int value) |
Set the number of startup NOTIFY requests sent per second. | |
void | dns_zonemgr_setserialqueryrate (dns_zonemgr_t *zmgr, unsigned int value) |
Set the number of SOA queries sent per second. | |
unsigned int | dns_zonemgr_getnotifyrate (dns_zonemgr_t *zmgr) |
Return the number of NOTIFY requests sent per second. | |
unsigned int | dns_zonemgr_getstartupnotifyrate (dns_zonemgr_t *zmgr) |
Return the number of startup NOTIFY requests sent per second. | |
unsigned int | dns_zonemgr_getserialqueryrate (dns_zonemgr_t *zmgr) |
Return the number of SOA queries sent per second. | |
isc_boolean_t | dns_zonemgr_unreachable (dns_zonemgr_t *zmgr, isc_sockaddr_t *remote, isc_sockaddr_t *local, isc_time_t *now) |
Returns ISC_TRUE if the given local/remote address pair is found in the zone maanger's unreachable cache. | |
void | dns_zonemgr_unreachabledel (dns_zonemgr_t *zmgr, isc_sockaddr_t *remote, isc_sockaddr_t *local) |
Remove the pair of addresses from the unreachable cache. | |
void | dns_zonemgr_unreachableadd (dns_zonemgr_t *zmgr, isc_sockaddr_t *remote, isc_sockaddr_t *local, isc_time_t *now) |
Add the pair of addresses to the unreachable cache. | |
void | dns_zone_forcereload (dns_zone_t *zone) |
Force a reload of specified zone. | |
isc_boolean_t | dns_zone_isforced (dns_zone_t *zone) |
Check if the zone is waiting a forced reload. | |
isc_result_t | dns_zone_setstatistics (dns_zone_t *zone, isc_boolean_t on) |
This function is obsoleted by dns_zone_setrequeststats(). | |
isc_uint64_t * | dns_zone_getstatscounters (dns_zone_t *zone) |
This function is obsoleted by dns_zone_getrequeststats(). | |
void | dns_zone_setstats (dns_zone_t *zone, isc_stats_t *stats) |
Set a general zone-maintenance statistics set 'stats' for 'zone'. This function is expected to be called only on zone creation (when necessary). Once installed, it cannot be removed or replaced. Also, there is no interface to get the installed stats from the zone; the caller must keep the stats to reference (e.g. dump) it later. | |
void | dns_zone_setrequeststats (dns_zone_t *zone, isc_stats_t *stats) |
void | dns_zone_setrcvquerystats (dns_zone_t *zone, dns_stats_t *stats) |
Set additional statistics sets to zone. These are attached to the zone but are not counted in the zone module; only the caller updates the counters. | |
isc_stats_t * | dns_zone_getrequeststats (dns_zone_t *zone) |
dns_stats_t * | dns_zone_getrcvquerystats (dns_zone_t *zone) |
Get the additional statistics for zone, if one is installed. | |
void | dns_zone_dialup (dns_zone_t *zone) |
Perform dialup-time maintenance on 'zone'. | |
void | dns_zone_setdialup (dns_zone_t *zone, dns_dialuptype_t dialup) |
Set the dialup type of 'zone' to 'dialup'. | |
isc_result_t | dns_zone_setkeydirectory (dns_zone_t *zone, const char *directory) |
Sets the name of the directory where private keys used for online signing of dynamic zones are found. | |
const char * | dns_zone_getkeydirectory (dns_zone_t *zone) |
Gets the name of the directory where private keys used for online signing of dynamic zones are found. | |
unsigned int | dns_zonemgr_getcount (dns_zonemgr_t *zmgr, int state) |
Returns the number of zones in the specified state. | |
isc_result_t | dns_zone_checknames (dns_zone_t *zone, dns_name_t *name, dns_rdata_t *rdata) |
Check if this record meets the check-names policy. | |
void | dns_zone_setcheckmx (dns_zone_t *zone, dns_checkmxfunc_t checkmx) |
Set the post load integrity callback function 'checkmx'. 'checkmx' will be called if the MX TARGET is not within the zone. | |
void | dns_zone_setchecksrv (dns_zone_t *zone, dns_checksrvfunc_t checksrv) |
Set the post load integrity callback function 'checksrv'. 'checksrv' will be called if the SRV TARGET is not within the zone. | |
void | dns_zone_setcheckns (dns_zone_t *zone, dns_checknsfunc_t checkns) |
Set the post load integrity callback function 'checkns'. 'checkns' will be called if the NS TARGET is not within the zone. | |
void | dns_zone_setisself (dns_zone_t *zone, dns_isselffunc_t isself, void *arg) |
Set the isself callback function and argument. | |
void | dns_zone_setnotifydelay (dns_zone_t *zone, isc_uint32_t delay) |
Set the minimum delay between sets of notify messages. | |
isc_uint32_t | dns_zone_getnotifydelay (dns_zone_t *zone) |
Get the minimum delay between sets of notify messages. | |
isc_result_t | dns_zone_signwithkey (dns_zone_t *zone, dns_secalg_t algorithm, isc_uint16_t keyid, isc_boolean_t delete) |
Initiate/resume signing of the entire zone with the zone DNSKEY(s) that match the given algorithm and keyid. | |
isc_result_t | dns_zone_addnsec3chain (dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) |
Incrementally add a NSEC3 chain that corresponds to 'nsec3param'. | |
void | dns_zone_setnodes (dns_zone_t *zone, isc_uint32_t nodes) |
Set the number of nodes that will be checked per quantum. | |
void | dns_zone_setsignatures (dns_zone_t *zone, isc_uint32_t signatures) |
Set the number of signatures that will be generated per quantum. | |
isc_uint32_t | dns_zone_getsignatures (dns_zone_t *zone) |
Get the number of signatures that will be generated per quantum. | |
void | dns_zone_setprivatetype (dns_zone_t *zone, dns_rdatatype_t type) |
dns_rdatatype_t | dns_zone_getprivatetype (dns_zone_t *zone) |
static void | logmsg (const char *format,...) |
static void | clear_keylist (dns_dnsseckeylist_t *list, isc_mem_t *mctx) |
static isc_result_t | next_keyevent (dst_key_t *key, isc_stdtime_t *timep) |
static isc_result_t | rr_exists (dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, const dns_rdata_t *rdata, isc_boolean_t *flag) |
static isc_result_t | add_signing_records (dns_db_t *db, dns_rdatatype_t privatetype, dns_dbversion_t *ver, dns_diff_t *diff, isc_boolean_t sign_all) |
static isc_result_t | sign_apex (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff, zonediff_t *zonediff) |
static isc_boolean_t | dnskey_sane (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff) |
static isc_result_t | clean_nsec3param (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff) |
static isc_boolean_t | signed_with_alg (dns_rdataset_t *rdataset, dns_secalg_t alg) |
static isc_result_t | add_chains (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_diff_t *diff) |
void | dns_zone_rekey (dns_zone_t *zone, isc_boolean_t fullsign) |
Update the zone's DNSKEY set from the key repository. | |
isc_result_t | dns_zone_nscheck (dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version, unsigned int *errors) |
void | dns_zone_setautomatic (dns_zone_t *zone, isc_boolean_t automatic) |
Returns ISC_TRUE if the zone was originally added at runtime using "rndc addzone". | |
isc_boolean_t | dns_zone_getautomatic (dns_zone_t *zone) |
Sets the value of zone->automatic, which should be ISC_TRUE for zones that were automatically added by named. | |
void | dns_zone_setadded (dns_zone_t *zone, isc_boolean_t added) |
Check if the name servers for the zone are sane (have address, don't refer to CNAMEs/DNAMEs. The number of constiancy errors detected in returned in '*errors'. | |
isc_boolean_t | dns_zone_getadded (dns_zone_t *zone) |
Sets the value of zone->added, which should be ISC_TRUE for zones that were originally added by "rndc addzone". | |
isc_result_t | dns_zone_dlzpostload (dns_zone_t *zone, dns_db_t *db) |
Returns ISC_TRUE if the zone was added automatically by named. | |
isc_result_t | dns_zone_setrefreshkeyinterval (dns_zone_t *zone, isc_uint32_t interval) |
Return true iff the zone is "dynamic", in the sense that the zone's master file (if any) is written by the server, rather than being updated manually and read by the server. | |
void | dns_zone_setrequestixfr (dns_zone_t *zone, isc_boolean_t flag) |
Returns the true/false value of the request-ixfr option in the zone. | |
isc_boolean_t | dns_zone_getrequestixfr (dns_zone_t *zone) |
Sets the request-expire option for the zone. Either true or false. The default value is determined by the setting of this option in the view. | |
void | dns_zone_setrequestexpire (dns_zone_t *zone, isc_boolean_t flag) |
Returns the true/false value of the request-expire option in the zone. | |
isc_boolean_t | dns_zone_getrequestexpire (dns_zone_t *zone) |
Sets the frequency, in minutes, with which the key repository will be checked to see if the keys for this zone have been updated. Any value higher than 1440 minutes (24 hours) will be silently reduced. A value of zero will return an out-of-range error. | |
void | dns_zone_setserialupdatemethod (dns_zone_t *zone, dns_updatemethod_t method) |
Sets the request-ixfr option for the zone. Either true or false. The default value is determined by the setting of this option in the view. | |
dns_updatemethod_t | dns_zone_getserialupdatemethod (dns_zone_t *zone) |
Sets the update method to use when incrementing the zone serial number due to a DDNS update. Valid options are dns_updatemethod_increment and dns_updatemethod_unixtime. | |
isc_result_t | dns_zone_link (dns_zone_t *zone, dns_zone_t *raw) |
Returns the update method to be used when incrementing the zone serial number due to a DDNS update. | |
void | dns_zone_getraw (dns_zone_t *zone, dns_zone_t **raw) |
static void | keydone (isc_task_t *task, isc_event_t *event) |
isc_result_t | dns_zone_keydone (dns_zone_t *zone, const char *keystr) |
static void | setnsec3param (isc_task_t *task, isc_event_t *event) |
isc_result_t | dns_zone_setnsec3param (dns_zone_t *zone, isc_uint8_t hash, isc_uint8_t flags, isc_uint16_t iter, isc_uint8_t saltlen, unsigned char *salt, isc_boolean_t replace) |
isc_result_t | dns_zone_getloadtime (dns_zone_t *zone, isc_time_t *loadtime) |
Force the managed key zone to synchronize, and start the key maintenance timer. | |
isc_result_t | dns_zone_getexpiretime (dns_zone_t *zone, isc_time_t *expiretime) |
Return the time when the (slave) zone will need to be refreshed. | |
isc_result_t | dns_zone_getrefreshtime (dns_zone_t *zone, isc_time_t *refreshtime) |
Return the time when the zone was last loaded. | |
isc_result_t | dns_zone_getrefreshkeytime (dns_zone_t *zone, isc_time_t *refreshkeytime) |
Return the time when the (slave) zone will expire. | |
unsigned int | dns_zone_getincludes (dns_zone_t *zone, char ***includesp) |
Return the time of the next scheduled DNSSEC key event. | |
void | dns_zone_setstatlevel (dns_zone_t *zone, dns_zonestat_level_t level) |
dns_zonestat_level_t | dns_zone_getstatlevel (dns_zone_t *zone) |
static void | setserial (isc_task_t *task, isc_event_t *event) |
isc_result_t | dns_zone_setserial (dns_zone_t *zone, isc_uint32_t serial) |
Set and get the statistics reporting level for the zone; full, terse, or none. | |
Variables | |
unsigned int | dns_zone_mkey_hour = HOUR |
unsigned int | dns_zone_mkey_day = DAY |
unsigned int | dns_zone_mkey_month = MONTH |
static const unsigned int | dbargc_default = 1 |
static const char * | dbargv_default [] = { "rbt" } |
static const char * | hex = "0123456789ABCDEF" |
Definition in file zone.c.
#define ZONE_MAGIC ISC_MAGIC('Z', 'O', 'N', 'E') |
Definition at line 90 of file zone.c.
Referenced by cancel_refresh(), default_journal(), dns__zone_loadpending(), dns_zone_addnsec3chain(), dns_zone_asyncload(), dns_zone_attach(), dns_zone_clearforwardacl(), dns_zone_clearnotifyacl(), dns_zone_clearqueryacl(), dns_zone_clearqueryonacl(), dns_zone_clearupdateacl(), dns_zone_clearxfracl(), dns_zone_detach(), dns_zone_dump(), dns_zone_expire(), dns_zone_flush(), dns_zone_forwardupdate(), dns_zone_getaltxfrsource4(), dns_zone_getaltxfrsource4dscp(), dns_zone_getaltxfrsource6(), dns_zone_getaltxfrsource6dscp(), dns_zone_getchecknames(), dns_zone_getclass(), dns_zone_getdb(), dns_zone_getdbtype(), dns_zone_getfile(), dns_zone_getforwardacl(), dns_zone_getidlein(), dns_zone_getidleout(), dns_zone_getjournal(), dns_zone_getjournalsize(), dns_zone_getkeyopts(), dns_zone_getmaxttl(), dns_zone_getmaxxfrin(), dns_zone_getmaxxfrout(), dns_zone_getmctx(), dns_zone_getmgr(), dns_zone_getnotifyacl(), dns_zone_getnotifysrc4(), dns_zone_getnotifysrc4dscp(), dns_zone_getnotifysrc6(), dns_zone_getnotifysrc6dscp(), dns_zone_getoptions(), dns_zone_getoptions2(), dns_zone_getorigin(), dns_zone_getqueryacl(), dns_zone_getqueryonacl(), dns_zone_getserial2(), dns_zone_getsigresigninginterval(), dns_zone_getsigvalidityinterval(), dns_zone_getssutable(), dns_zone_gettask(), dns_zone_gettype(), dns_zone_getupdateacl(), dns_zone_getupdatedisabled(), dns_zone_getview(), dns_zone_getxfracl(), dns_zone_getxfrsource4(), dns_zone_getxfrsource4dscp(), dns_zone_getxfrsource6(), dns_zone_getxfrsource6dscp(), dns_zone_getzeronosoattl(), dns_zone_iattach(), dns_zone_idetach(), dns_zone_isdynamic(), dns_zone_link(), dns_zone_maintenance(), dns_zone_name(), dns_zone_next(), dns_zone_notify(), dns_zone_notifyreceive(), dns_zone_refresh(), dns_zone_replacedb(), dns_zone_setacache(), dns_zone_setalsonotifydscpkeys(), dns_zone_setaltxfrsource4(), dns_zone_setaltxfrsource4dscp(), dns_zone_setaltxfrsource6(), dns_zone_setaltxfrsource6dscp(), dns_zone_setchecknames(), dns_zone_setclass(), dns_zone_setdb(), dns_zone_setdbtype(), dns_zone_setfile3(), dns_zone_setflag(), dns_zone_setforwardacl(), dns_zone_setidlein(), dns_zone_setidleout(), dns_zone_setjournal(), dns_zone_setjournalsize(), dns_zone_setkeyopt(), dns_zone_setmasterswithkeys(), dns_zone_setmaxrefreshtime(), dns_zone_setmaxretrytime(), dns_zone_setmaxttl(), dns_zone_setmaxxfrin(), dns_zone_setmaxxfrout(), dns_zone_setminrefreshtime(), dns_zone_setminretrytime(), dns_zone_setnotifyacl(), dns_zone_setnotifysrc4(), dns_zone_setnotifysrc4dscp(), dns_zone_setnotifysrc6(), dns_zone_setnotifysrc6dscp(), dns_zone_setnotifytype(), dns_zone_setoption(), dns_zone_setoption2(), dns_zone_setorigin(), dns_zone_setqueryacl(), dns_zone_setqueryonacl(), dns_zone_setsigresigninginterval(), dns_zone_setsigvalidityinterval(), dns_zone_setssutable(), dns_zone_settask(), dns_zone_settype(), dns_zone_setupdateacl(), dns_zone_setupdatedisabled(), dns_zone_setview(), dns_zone_setxfracl(), dns_zone_setxfrsource4(), dns_zone_setxfrsource4dscp(), dns_zone_setxfrsource6(), dns_zone_setxfrsource6dscp(), dns_zone_setzeronosoattl(), dns_zone_unload(), dns_zonemgr_managezone(), dns_zonemgr_releasezone(), dump_done(), dumptostream(), forward_callback(), inline_raw(), inline_secure(), keydone(), notify_createmessage(), ns_query(), refresh_callback(), restore_nsec3param(), save_nsec3param(), soa_query(), sync_secure_db(), zone_asyncload(), zone_dump(), zone_free(), zone_gotwritehandle(), zone_iattach(), zone_idetach(), zone_load(), zone_maintenance(), zone_needdump(), zone_notify(), zone_registerinclude(), zone_replacedb(), zone_settimer(), zone_shutdown(), zone_timer(), zone_touched(), and zone_xfrdone().
#define NOTIFY_MAGIC ISC_MAGIC('N', 't', 'f', 'y') |
#define DNS_NOTIFY_VALID | ( | notify | ) | ISC_MAGIC_VALID(notify, NOTIFY_MAGIC) |
Definition at line 93 of file zone.c.
Referenced by notify_destroy(), notify_done(), notify_find_address(), notify_send(), notify_send_toaddr(), and process_adb_event().
#define STUB_MAGIC ISC_MAGIC('S', 't', 'u', 'b') |
#define DNS_STUB_VALID | ( | stub | ) | ISC_MAGIC_VALID(stub, STUB_MAGIC) |
#define ZONEMGR_MAGIC ISC_MAGIC('Z', 'm', 'g', 'r') |
#define DNS_ZONEMGR_VALID | ( | stub | ) | ISC_MAGIC_VALID(stub, ZONEMGR_MAGIC) |
Definition at line 99 of file zone.c.
Referenced by dns_zone_first(), dns_zonemgr_attach(), dns_zonemgr_createzone(), dns_zonemgr_detach(), dns_zonemgr_forcemaint(), dns_zonemgr_getiolimit(), dns_zonemgr_getttransfersin(), dns_zonemgr_getttransfersperns(), dns_zonemgr_managezone(), dns_zonemgr_releasezone(), dns_zonemgr_resumexfrs(), dns_zonemgr_setiolimit(), dns_zonemgr_setsize(), dns_zonemgr_settransfersin(), dns_zonemgr_settransfersperns(), dns_zonemgr_shutdown(), and zonemgr_getio().
#define LOAD_MAGIC ISC_MAGIC('L', 'o', 'a', 'd') |
#define DNS_LOAD_VALID | ( | load | ) | ISC_MAGIC_VALID(load, LOAD_MAGIC) |
#define FORWARD_MAGIC ISC_MAGIC('F', 'o', 'r', 'w') |
#define DNS_FORWARD_VALID | ( | load | ) | ISC_MAGIC_VALID(load, FORWARD_MAGIC) |
#define IO_MAGIC ISC_MAGIC('Z', 'm', 'I', 'O') |
#define DNS_IO_VALID | ( | load | ) | ISC_MAGIC_VALID(load, IO_MAGIC) |
#define RANGE | ( | a, | |||
min, | |||||
max | ) | (((a) < (min)) ? (min) : ((a) < (max) ? (a) : (max))) |
#define NSEC3REMOVE | ( | x | ) | (((x) & DNS_NSEC3FLAG_REMOVE) != 0) |
Definition at line 116 of file zone.c.
Referenced by need_nsec_chain(), save_nsec3param(), and zone_nsec3chain().
#define REVOKE | ( | x | ) | ((dst_key_flags(x) & DNS_KEYFLAG_REVOKE) != 0) |
#define KSK | ( | x | ) | ((dst_key_flags(x) & DNS_KEYFLAG_KSK) != 0) |
#define DNS_DEFAULT_IDLEIN 3600 |
1 hour
Definition at line 128 of file zone.c.
Referenced by dns_zone_create(), and dns_zone_setidlein().
#define DNS_DEFAULT_IDLEOUT 3600 |
#define MAX_XFER_TIME (2*3600) |
Documented default is 2 hours.
Definition at line 130 of file zone.c.
Referenced by dns_zone_create().
#define DNS_MAX_EXPIRE 14515200 |
24 weeks
Definition at line 134 of file zone.c.
Referenced by stub_callback(), zone_postload(), and zone_xfrdone().
#define DNS_DUMP_DELAY 900 |
15 minutes
Definition at line 138 of file zone.c.
Referenced by dns_zone_markdirty(), dump_done(), receive_secure_serial(), setmodtime(), zone_dump(), zone_nsec3chain(), zone_postload(), zone_replacedb(), zone_resigninc(), zone_sign(), and zone_xfrdone().
#define DNS_ZONE_CHECKLOCK |
#define LOCK_ZONE | ( | z | ) |
Value:
Referenced by dns_zone_addnsec3chain(), dns_zone_asyncload(), dns_zone_clearforwardacl(), dns_zone_clearnotifyacl(), dns_zone_clearqueryacl(), dns_zone_clearqueryonacl(), dns_zone_clearupdateacl(), dns_zone_clearxfracl(), dns_zone_detach(), dns_zone_dump(), dns_zone_expire(), dns_zone_flush(), dns_zone_getdbtype(), dns_zone_getserial2(), dns_zone_getssutable(), dns_zone_iattach(), dns_zone_idetach(), dns_zone_link(), dns_zone_maintenance(), dns_zone_markdirty(), dns_zone_notify(), dns_zone_notifyreceive(), dns_zone_refresh(), dns_zone_replacedb(), dns_zone_rpz_enable(), dns_zone_setacache(), dns_zone_setalsonotifydscpkeys(), dns_zone_setaltxfrsource4(), dns_zone_setaltxfrsource4dscp(), dns_zone_setaltxfrsource6(), dns_zone_setaltxfrsource6dscp(), dns_zone_setclass(), dns_zone_setdbtype(), dns_zone_setfile3(), dns_zone_setflag(), dns_zone_setforwardacl(), dns_zone_setjournal(), dns_zone_setkeyopt(), dns_zone_setmasterswithkeys(), dns_zone_setmaxttl(), dns_zone_setnotifyacl(), dns_zone_setnotifysrc4(), dns_zone_setnotifysrc4dscp(), dns_zone_setnotifysrc6(), dns_zone_setnotifysrc6dscp(), dns_zone_setnotifytype(), dns_zone_setoption(), dns_zone_setoption2(), dns_zone_setorigin(), dns_zone_setqueryacl(), dns_zone_setqueryonacl(), dns_zone_setrawdata(), dns_zone_setsigresigninginterval(), dns_zone_setssutable(), dns_zone_settask(), dns_zone_settype(), dns_zone_setupdateacl(), dns_zone_setview(), dns_zone_setxfracl(), dns_zone_setxfrsource4(), dns_zone_setxfrsource4dscp(), dns_zone_setxfrsource6(), dns_zone_setxfrsource6dscp(), dns_zone_synckeyzone(), dns_zone_unload(), dns_zonemgr_managezone(), dns_zonemgr_releasezone(), dns_zonemgr_shutdown(), dump_done(), got_transfer_quota(), keydone(), keyfetch_done(), notify_destroy(), notify_find_address(), notify_send_toaddr(), process_adb_event(), queue_xfrin(), receive_secure_db(), receive_secure_serial(), refresh_callback(), sendtomaster(), soa_query(), stub_callback(), zmgr_start_xfrin_ifquota(), zone_asyncload(), zone_dump(), zone_gotwritehandle(), zone_load(), zone_loaddone(), zone_maintenance(), zone_notify(), zone_nsec3chain(), zone_refreshkeys(), zone_resigninc(), zone_shutdown(), zone_sign(), and zone_xfrdone().
#define UNLOCK_ZONE | ( | z | ) | do { (z)->locked = ISC_FALSE; UNLOCK(&(z)->lock); } while (0) |
Referenced by dns_zone_addnsec3chain(), dns_zone_asyncload(), dns_zone_clearforwardacl(), dns_zone_clearnotifyacl(), dns_zone_clearqueryacl(), dns_zone_clearqueryonacl(), dns_zone_clearupdateacl(), dns_zone_clearxfracl(), dns_zone_detach(), dns_zone_dump(), dns_zone_expire(), dns_zone_flush(), dns_zone_getdbtype(), dns_zone_getserial2(), dns_zone_getssutable(), dns_zone_iattach(), dns_zone_idetach(), dns_zone_link(), dns_zone_maintenance(), dns_zone_markdirty(), dns_zone_notify(), dns_zone_notifyreceive(), dns_zone_refresh(), dns_zone_replacedb(), dns_zone_rpz_enable(), dns_zone_setacache(), dns_zone_setalsonotifydscpkeys(), dns_zone_setaltxfrsource4(), dns_zone_setaltxfrsource4dscp(), dns_zone_setaltxfrsource6(), dns_zone_setaltxfrsource6dscp(), dns_zone_setclass(), dns_zone_setdbtype(), dns_zone_setfile3(), dns_zone_setflag(), dns_zone_setforwardacl(), dns_zone_setjournal(), dns_zone_setkeyopt(), dns_zone_setmasterswithkeys(), dns_zone_setmaxttl(), dns_zone_setnotifyacl(), dns_zone_setnotifysrc4(), dns_zone_setnotifysrc4dscp(), dns_zone_setnotifysrc6(), dns_zone_setnotifysrc6dscp(), dns_zone_setnotifytype(), dns_zone_setoption(), dns_zone_setoption2(), dns_zone_setorigin(), dns_zone_setqueryacl(), dns_zone_setqueryonacl(), dns_zone_setrawdata(), dns_zone_setsigresigninginterval(), dns_zone_setssutable(), dns_zone_settask(), dns_zone_settype(), dns_zone_setupdateacl(), dns_zone_setview(), dns_zone_setxfracl(), dns_zone_setxfrsource4(), dns_zone_setxfrsource4dscp(), dns_zone_setxfrsource6(), dns_zone_setxfrsource6dscp(), dns_zone_synckeyzone(), dns_zone_unload(), dns_zonemgr_managezone(), dns_zonemgr_releasezone(), dns_zonemgr_shutdown(), dump_done(), got_transfer_quota(), keydone(), keyfetch_done(), notify_destroy(), notify_find_address(), notify_send_toaddr(), process_adb_event(), queue_xfrin(), receive_secure_db(), receive_secure_serial(), refresh_callback(), sendtomaster(), soa_query(), stub_callback(), zmgr_start_xfrin_ifquota(), zone_asyncload(), zone_dump(), zone_gotwritehandle(), zone_load(), zone_loaddone(), zone_maintenance(), zone_notify(), zone_nsec3chain(), zone_refreshkeys(), zone_resigninc(), zone_shutdown(), zone_sign(), and zone_xfrdone().
#define LOCKED_ZONE | ( | z | ) | ((z)->locked) |
Referenced by cancel_refresh(), default_journal(), exit_check(), forward_cancel(), notify_cancel(), notify_destroy(), notify_send(), ns_query(), queue_soa_query(), was_dumping(), zone_expire(), zone_free(), zone_iattach(), zone_idetach(), zone_needdump(), zone_postload(), zone_replacedb(), zone_send_securedb(), zone_send_secureserial(), and zone_unload().
#define TRYLOCK_ZONE | ( | result, | |||
z | ) |
Value:
do { \ result = isc_mutex_trylock(&(z)->lock); \ if (result == ISC_R_SUCCESS) { \ INSIST((z)->locked == ISC_FALSE); \ (z)->locked = ISC_TRUE; \ } \ } while (0)
Referenced by dns_zone_markdirty(), dns_zone_replacedb(), zone_loaddone(), and zone_xfrdone().
#define ZONEDB_INITLOCK | ( | l | ) | isc_mutex_init(l) |
Referenced by dns_zone_create().
#define ZONEDB_DESTROYLOCK | ( | l | ) | DESTROYLOCK(l) |
Referenced by dns_zone_create(), and zone_free().
#define ZONEDB_LOCK | ( | l, | |||
t | ) | LOCK(l) |
Referenced by dns_zone_getdb(), dns_zone_getserial2(), dns_zone_markdirty(), dns_zone_replacedb(), dns_zone_setacache(), dns_zone_setdb(), dns_zone_settask(), dumptostream(), got_transfer_quota(), keydone(), notify_createmessage(), ns_query(), receive_secure_db(), receive_secure_serial(), resume_addnsec3chain(), resume_signingwithkey(), set_resigntime(), stub_callback(), zone_addnsec3chain(), zone_dump(), zone_gotwritehandle(), zone_load(), zone_notify(), zone_nsec3chain(), zone_postload(), zone_refreshkeys(), zone_resigninc(), zone_sign(), zone_unload(), and zone_xfrdone().
#define ZONEDB_UNLOCK | ( | l, | |||
t | ) | UNLOCK(l) |
Referenced by dns_zone_getdb(), dns_zone_getserial2(), dns_zone_markdirty(), dns_zone_replacedb(), dns_zone_setacache(), dns_zone_setdb(), dns_zone_settask(), dumptostream(), got_transfer_quota(), keydone(), notify_createmessage(), ns_query(), receive_secure_db(), receive_secure_serial(), resume_addnsec3chain(), resume_signingwithkey(), set_resigntime(), stub_callback(), zone_addnsec3chain(), zone_dump(), zone_gotwritehandle(), zone_load(), zone_notify(), zone_nsec3chain(), zone_postload(), zone_refreshkeys(), zone_resigninc(), zone_sign(), zone_unload(), and zone_xfrdone().
#define zonediff_init | ( | z, | |||
d | ) |
Value:
do { \ zonediff_t *_z = (z); \ (_z)->diff = (d); \ (_z)->offline = ISC_FALSE; \ } while (0)
Definition at line 431 of file zone.c.
Referenced by zone_nsec3chain(), zone_resigninc(), and zone_sign().
#define DNS_ZONE_FLAG | ( | z, | |||
f | ) | (ISC_TF(((z)->flags & (f)) != 0)) |
Definition at line 438 of file zone.c.
Referenced by dns__zone_loadpending(), dns_zone_asyncload(), dns_zone_flush(), dns_zone_notifyreceive(), dns_zone_refresh(), dump_done(), exit_check(), got_transfer_quota(), keyfetch_done(), notify_send_toaddr(), ns_query(), queue_soa_query(), receive_secure_db(), refresh_callback(), sendtomaster(), setmodtime(), soa_query(), stub_callback(), sync_keyzone(), was_dumping(), zmgr_start_xfrin_ifquota(), zone_asyncload(), zone_dump(), zone_load(), zone_loaddone(), zone_maintenance(), zone_needdump(), zone_notify(), zone_postload(), zone_refreshkeys(), zone_replacedb(), zone_settimer(), zone_shutdown(), zone_unload(), and zone_xfrdone().
#define DNS_ZONE_SETFLAG | ( | z, | |||
f | ) |
Value:
do { \ INSIST(LOCKED_ZONE(z)); \ (z)->flags |= (f); \ } while (0)
Definition at line 439 of file zone.c.
Referenced by dns_zone_asyncload(), dns_zone_flush(), dns_zone_notify(), dns_zone_notifyreceive(), dns_zone_refresh(), dns_zone_setflag(), dump_done(), keydone(), keyfetch_done(), maybe_send_secure(), ns_query(), receive_secure_db(), receive_secure_serial(), refresh_callback(), soa_query(), stub_callback(), sync_keyzone(), was_dumping(), zone_dump(), zone_expire(), zone_load(), zone_needdump(), zone_nsec3chain(), zone_postload(), zone_refreshkeys(), zone_replacedb(), zone_resigninc(), zone_shutdown(), zone_sign(), and zone_xfrdone().
#define DNS_ZONE_CLRFLAG | ( | z, | |||
f | ) |
Value:
do { \ INSIST(LOCKED_ZONE(z)); \ (z)->flags &= ~(f); \ } while (0)
Definition at line 443 of file zone.c.
Referenced by cancel_refresh(), dns_zone_refresh(), dns_zone_setflag(), dns_zone_setmasterswithkeys(), dump_done(), got_transfer_quota(), keyfetch_done(), refresh_callback(), soa_query(), stub_callback(), was_dumping(), zone_asyncload(), zone_dump(), zone_expire(), zone_loaddone(), zone_notify(), zone_postload(), zone_refreshkeys(), zone_send_securedb(), zone_send_secureserial(), zone_unload(), and zone_xfrdone().
#define DNS_ZONEFLG_REFRESH 0x00000001U |
refresh check in progress
Definition at line 448 of file zone.c.
Referenced by cancel_refresh(), dns_zone_notifyreceive(), dns_zone_refresh(), refresh_callback(), soa_query(), stub_callback(), zone_settimer(), and zone_xfrdone().
#define DNS_ZONEFLG_NEEDDUMP 0x00000002U |
zone need consolidation
Definition at line 449 of file zone.c.
Referenced by dns_zone_flush(), dump_done(), setmodtime(), was_dumping(), zone_dump(), zone_maintenance(), zone_needdump(), zone_settimer(), and zone_unload().
#define DNS_ZONEFLG_USEVC 0x00000004U |
use tcp for refresh query
Definition at line 450 of file zone.c.
Referenced by refresh_callback(), soa_query(), and stub_callback().
#define DNS_ZONEFLG_DUMPING 0x00000008U |
a dump is in progress
Definition at line 451 of file zone.c.
Referenced by dump_done(), was_dumping(), zone_dump(), zone_settimer(), zone_shutdown(), and zone_unload().
#define DNS_ZONEFLG_HASINCLUDE 0x00000010U |
#define DNS_ZONEFLG_LOADED 0x00000020U |
database has loaded
Definition at line 453 of file zone.c.
Referenced by dns_zone_notifyreceive(), dump_done(), keydone(), keyfetch_done(), notify_send_toaddr(), refresh_callback(), stub_callback(), sync_keyzone(), zone_dump(), zone_load(), zone_maintenance(), zone_needdump(), zone_notify(), zone_postload(), zone_refreshkeys(), zone_replacedb(), zone_settimer(), and zone_unload().
#define DNS_ZONEFLG_EXITING 0x00000040U |
zone is being destroyed
Definition at line 454 of file zone.c.
Referenced by dns_zone_refresh(), got_transfer_quota(), keyfetch_done(), notify_send_toaddr(), queue_soa_query(), receive_secure_db(), refresh_callback(), sendtomaster(), soa_query(), stub_callback(), zmgr_start_xfrin_ifquota(), zone_refreshkeys(), zone_settimer(), zone_shutdown(), and zone_xfrdone().
#define DNS_ZONEFLG_EXPIRED 0x00000080U |
#define DNS_ZONEFLG_NEEDREFRESH 0x00000100U |
refresh check needed
Definition at line 456 of file zone.c.
Referenced by dns_zone_notifyreceive(), refresh_callback(), and zone_xfrdone().
#define DNS_ZONEFLG_UPTODATE 0x00000200U |
#define DNS_ZONEFLG_NEEDNOTIFY 0x00000400U |
need to send out notify messages
Definition at line 459 of file zone.c.
Referenced by dns_zone_notify(), receive_secure_db(), receive_secure_serial(), zone_maintenance(), zone_notify(), zone_nsec3chain(), zone_replacedb(), zone_resigninc(), zone_settimer(), zone_sign(), and zone_xfrdone().
#define DNS_ZONEFLG_DIFFONRELOAD 0x00000800U |
#define DNS_ZONEFLG_NOMASTERS 0x00001000U |
an attempt to refresh a zone with no masters occurred
Definition at line 463 of file zone.c.
Referenced by dns_zone_refresh(), dns_zone_setmasterswithkeys(), and zone_settimer().
#define DNS_ZONEFLG_LOADING 0x00002000U |
load from disk in progress
Definition at line 466 of file zone.c.
Referenced by dns_zone_refresh(), zone_load(), zone_loaddone(), and zone_settimer().
#define DNS_ZONEFLG_HAVETIMERS 0x00004000U |
timer values have been set from SOA (if not set, we are still using default timer values)
Definition at line 467 of file zone.c.
Referenced by dns_zone_refresh(), stub_callback(), zone_expire(), zone_postload(), and zone_xfrdone().
#define DNS_ZONEFLG_FORCEXFER 0x00008000U |
Force a zone xfer.
Definition at line 471 of file zone.c.
Referenced by got_transfer_quota(), refresh_callback(), zone_replacedb(), and zone_xfrdone().
#define DNS_ZONEFLG_NOREFRESH 0x00010000U |
#define DNS_ZONEFLG_DIALNOTIFY 0x00020000U |
#define DNS_ZONEFLG_DIALREFRESH 0x00040000U |
Definition at line 474 of file zone.c.
Referenced by ns_query(), soa_query(), and zone_maintenance().
#define DNS_ZONEFLG_SHUTDOWN 0x00080000U |
#define DNS_ZONEFLAG_NOIXFR 0x00100000U |
IXFR failed, force AXFR.
Definition at line 476 of file zone.c.
Referenced by got_transfer_quota(), and zone_xfrdone().
#define DNS_ZONEFLG_FLUSH 0x00200000U |
Definition at line 477 of file zone.c.
Referenced by dns_zone_flush(), dump_done(), zone_dump(), zone_shutdown(), and zone_unload().
#define DNS_ZONEFLG_NOEDNS 0x00400000U |
Definition at line 478 of file zone.c.
Referenced by dns_zone_refresh(), ns_query(), refresh_callback(), soa_query(), and stub_callback().
#define DNS_ZONEFLG_USEALTXFRSRC 0x00800000U |
Definition at line 479 of file zone.c.
Referenced by dns_zone_refresh(), ns_query(), refresh_callback(), soa_query(), stub_callback(), and zone_xfrdone().
#define DNS_ZONEFLG_SOABEFOREAXFR 0x01000000U |
Definition at line 480 of file zone.c.
Referenced by got_transfer_quota(), refresh_callback(), and zone_xfrdone().
#define DNS_ZONEFLG_NEEDCOMPACT 0x02000000U |
#define DNS_ZONEFLG_REFRESHING 0x04000000U |
Refreshing keydata.
Definition at line 482 of file zone.c.
Referenced by keyfetch_done(), zone_maintenance(), zone_refreshkeys(), and zone_settimer().
#define DNS_ZONEFLG_THAW 0x08000000U |
#define DNS_ZONEFLG_LOADPENDING 0x10000000U |
Loading scheduled.
Definition at line 484 of file zone.c.
Referenced by dns__zone_loadpending(), dns_zone_asyncload(), zone_asyncload(), zone_maintenance(), and zone_postload().
#define DNS_ZONEFLG_NODELAY 0x20000000U |
#define DNS_ZONEFLG_SENDSECURE 0x40000000U |
Definition at line 486 of file zone.c.
Referenced by maybe_send_secure(), zone_postload(), zone_send_securedb(), and zone_send_secureserial().
#define DNS_ZONEFLG_NEEDSTARTUPNOTIFY 0x80000000U |
need to send out notify due to the zone just being loaded for the first time.
Definition at line 487 of file zone.c.
Referenced by zone_maintenance(), zone_notify(), zone_postload(), and zone_settimer().
#define DNS_ZONE_OPTION | ( | z, | |||
o | ) | (((z)->options & (o)) != 0) |
Definition at line 492 of file zone.c.
Referenced by check_nsec3param(), get_master_options(), integrity_checks(), refresh_callback(), stub_callback(), zone_check_glue(), zone_check_mx(), zone_check_ns(), zone_check_srv(), zone_notify(), zone_nsec3chain(), zone_postload(), zone_replacedb(), zone_resigninc(), zone_rrset_check_dup(), zone_sign(), zone_startload(), and zone_xfrdone().
#define DNS_ZONE_OPTION2 | ( | z, | |||
o | ) | (((z)->options2 & (o)) != 0) |
#define DNS_ZONEKEY_OPTION | ( | z, | |||
o | ) | (((z)->keyopts & (o)) != 0) |
#define DNS_ZONELOADFLAG_NOSTAT 0x00000001U |
#define DNS_ZONELOADFLAG_THAW 0x00000002U |
#define CHECK | ( | op | ) |
Value:
do { result = (op); \ if (result != ISC_R_SUCCESS) goto failure; \ } while (0)
#define DNS_NOTIFY_NOSOA 0x0001U |
Definition at line 578 of file zone.c.
Referenced by notify_createmessage(), notify_done(), notify_send(), and zone_notify().
#define DNS_NOTIFY_STARTUP 0x0002U |
Definition at line 579 of file zone.c.
Referenced by notify_done(), notify_isqueued(), notify_send(), and zone_notify().
#define SEND_BUFFER_SIZE 2048 |
Definition at line 725 of file zone.c.
Referenced by client_allocsendbuf(), client_send(), ns_client_sendraw(), ns_query(), and soa_query().
#define DNS_ZONE_JITTER_ADD | ( | a, | |||
b, | |||||
c | ) |
Value:
do { \ isc_interval_t _i; \ isc_uint32_t _j; \ _j = isc_random_jitter((b), (b)/4); \ isc_interval_set(&_i, _j, 0); \ if (isc_time_add((a), &_i, (c)) != ISC_R_SUCCESS) { \ dns_zone_log(zone, ISC_LOG_WARNING, \ "epoch approaching: upgrade required: " \ "now + %s failed", #b); \ isc_interval_set(&_i, _j/2, 0); \ (void)isc_time_add((a), &_i, (c)); \ } \ } while (0)
Definition at line 823 of file zone.c.
Referenced by refresh_callback(), stub_callback(), zone_needdump(), and zone_xfrdone().
#define DNS_ZONE_TIME_ADD | ( | a, | |||
b, | |||||
c | ) |
Value:
do { \ isc_interval_t _i; \ isc_interval_set(&_i, (b), 0); \ if (isc_time_add((a), &_i, (c)) != ISC_R_SUCCESS) { \ dns_zone_log(zone, ISC_LOG_WARNING, \ "epoch approaching: upgrade required: " \ "now + %s failed", #b); \ isc_interval_set(&_i, (b)/2, 0); \ (void)isc_time_add((a), &_i, (c)); \ } \ } while (0)
Definition at line 838 of file zone.c.
Referenced by refresh_callback(), set_refreshkeytimer(), stub_callback(), zone_notify(), zone_postload(), zone_refreshkeys(), and zone_xfrdone().
#define ZONES_PER_TASK 100 |
#define ZONES_PER_MCTX 1000 |
#define PENDINGFLAGS (DNS_NSEC3FLAG_CREATE|DNS_NSEC3FLAG_INITIAL) |
typedef struct dns_notify dns_notify_t |
typedef struct dns_stub dns_stub_t |
typedef struct dns_load dns_load_t |
typedef struct dns_forward dns_forward_t |
typedef struct nsec3param nsec3param_t |
typedef ISC_LIST | ( | dns_forward_t | ) |
Zones in certain states such as "waiting for zone transfer" or "zone transfer in progress" are kept on per-state linked lists in the zone manager using the 'statelink' field. The 'statelist' field points at the list the zone is currently on. It the zone is not on any such list, statelist is NULL.
Statistics counters about zone management.
Optional per-zone statistics counters. Counted outside of this module.
Serial number for deferred journal compaction.
Keys that are signing the zone for the first time.
Signing / re-signing quantum stopping parameters.
Autosigning/key-maintenance options
True if added by "rndc addzone"
True if added by automatically by named.
response policy data to be relayed to the database
Serial number update method.
whether ixfr is requested
whether EDNS EXPIRE is requested
Outstanding forwarded UPDATE requests.
maximum zone ttl
Definition at line 145 of file zone.c.
References checkmx(), checkns(), checksrv(), ISC_LINK, ISC_LIST, journal, lctx, masterstyle, maxttl, mctx, notify(), origin, privatetype, rdclass, secure(), and tsigkey.
static void zone_settimer | ( | dns_zone_t * | zone, | |
isc_time_t * | now | |||
) | [static] |
Definition at line 12287 of file zone.c.
References DNS_ZONE_FLAG, dns_zone_key, dns_zone_log(), dns_zone_master, dns_zone_redirect, dns_zone_slave, dns_zone_stub, DNS_ZONE_VALID, DNS_ZONEFLG_DUMPING, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_LOADING, DNS_ZONEFLG_NEEDDUMP, DNS_ZONEFLG_NEEDNOTIFY, DNS_ZONEFLG_NEEDSTARTUPNOTIFY, DNS_ZONEFLG_NOMASTERS, DNS_ZONEFLG_NOREFRESH, DNS_ZONEFLG_REFRESH, DNS_ZONEFLG_REFRESHING, ENTER, INSIST, ISC_LOG_ERROR, ISC_R_SUCCESS, isc_result_totext(), isc_time_compare(), isc_time_isepoch(), isc_time_settoepoch(), isc_timer_reset(), isc_timertype_inactive, isc_timertype_once, ISC_TRUE, REQUIRE, and zone_debuglog().
Referenced by cancel_refresh(), dns_zone_maintenance(), dns_zone_notify(), dns_zone_setsigresigninginterval(), receive_secure_serial(), refresh_callback(), set_refreshkeytimer(), stub_callback(), zone_addnsec3chain(), zone_load(), zone_maintenance(), zone_needdump(), zone_postload(), zone_refreshkeys(), and zone_xfrdone().
static void cancel_refresh | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 12419 of file zone.c.
References DNS_ZONE_CLRFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_REFRESH, ENTER, LOCKED_ZONE, now, REQUIRE, TIME_NOW, and zone_settimer().
Referenced by ns_query(), queue_soa_query(), and soa_query().
static void zone_debuglog | ( | dns_zone_t * | zone, | |
const char * | me, | |||
int | debuglevel, | |||
const char * | msg, | |||
... | ||||
) | [static] |
Definition at line 13190 of file zone.c.
References dns_lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_ZONE, dns_zone_key, dns_zone_redirect, ISC_FALSE, ISC_LOG_DEBUG, isc_log_wouldlog(), and isc_log_write().
Referenced by ns_query(), refresh_callback(), soa_query(), stub_callback(), zone_settimer(), and zone_shutdown().
static void notify_log | ( | dns_zone_t * | zone, | |
int | level, | |||
const char * | fmt, | |||
... | ||||
) | [static] |
Definition at line 13140 of file zone.c.
References dns_lctx, DNS_LOGCATEGORY_NOTIFY, DNS_LOGMODULE_ZONE, ISC_FALSE, isc_log_wouldlog(), and isc_log_write().
Referenced by notify_done(), notify_send_toaddr(), ns_notify_start(), and zone_notify().
static void queue_xfrin | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 14919 of file zone.c.
References DNS_LOGCATEGORY_XFER_IN, dns_zone_logc(), ENTER, INSIST, ISC_LIST_APPEND, ISC_LOG_ERROR, ISC_LOG_INFO, ISC_R_QUOTA, ISC_R_SUCCESS, isc_result_totext(), isc_rwlocktype_write, LOCK_ZONE, dns_zonemgr::rwlock, RWLOCK, RWUNLOCK, UNLOCK_ZONE, dns_zonemgr::waiting_for_xfrin, and zmgr_start_xfrin_ifquota().
Referenced by refresh_callback().
static isc_result_t update_one_rr | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
dns_diff_t * | diff, | |||
dns_diffop_t | op, | |||
dns_name_t * | name, | |||
dns_ttl_t | ttl, | |||
dns_rdata_t * | rdata | |||
) | [static] |
Definition at line 3825 of file zone.c.
References dns_difftuple_create(), do_one_tuple(), ISC_R_SUCCESS, and dns_diff::mctx.
static void zone_unload | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 10062 of file zone.c.
References dns_dumpctx_cancel(), DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, DNS_ZONEFLG_DUMPING, DNS_ZONEFLG_FLUSH, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NEEDDUMP, isc_rwlocktype_write, LOCKED_ZONE, REQUIRE, zone_detachdb(), ZONEDB_LOCK, ZONEDB_UNLOCK, and zonemgr_cancelio().
Referenced by dns_zone_unload(), zone_expire(), and zone_xfrdone().
static void zone_expire | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 9607 of file zone.c.
References DNS_ZONE_CLRFLAG, DNS_ZONE_DEFAULTREFRESH, DNS_ZONE_DEFAULTRETRY, dns_zone_log(), DNS_ZONE_SETFLAG, DNS_ZONEFLG_EXPIRED, DNS_ZONEFLG_HAVETIMERS, ISC_LOG_WARNING, LOCKED_ZONE, REQUIRE, and zone_unload().
Referenced by dns_zone_expire(), and zone_maintenance().
static void zone_iattach | ( | dns_zone_t * | source, | |
dns_zone_t ** | target | |||
) | [static] |
Definition at line 5059 of file zone.c.
References DNS_ZONE_VALID, INSIST, isc_refcount_current, LOCKED_ZONE, and REQUIRE.
Referenced by dns_zone_asyncload(), dns_zone_iattach(), dns_zone_link(), notify_send(), ns_query(), queue_soa_query(), soa_query(), zone_dump(), zone_notify(), zone_send_securedb(), zone_send_secureserial(), and zone_startload().
static void zone_idetach | ( | dns_zone_t ** | zonep | ) | [static] |
Definition at line 5074 of file zone.c.
References DNS_ZONE_VALID, INSIST, isc_refcount_current, LOCKED_ZONE, and REQUIRE.
Referenced by notify_destroy(), ns_query(), queue_soa_query(), soa_query(), zone_dump(), zone_loaddone(), and zone_startload().
static isc_result_t zone_replacedb | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
isc_boolean_t | dump | |||
) | [static] |
Definition at line 14311 of file zone.c.
References check_nsec3param(), dns_db_closeversion(), dns_db_currentversion(), dns_db_diff(), dns_db_getsoaserial(), dns_db_rpz_ready(), dns_db_settask(), DNS_DUMP_DELAY, dns_journal_compact(), dns_lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_ZONE, DNS_R_BADZONE, dns_result_totext(), DNS_ZONE_FLAG, dns_zone_key, dns_zone_log(), dns_zone_master, DNS_ZONE_OPTION, dns_zone_redirect, DNS_ZONE_SETFLAG, dns_zone_slave, DNS_ZONE_VALID, DNS_ZONEFLG_FORCEXFER, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NEEDNOTIFY, DNS_ZONEFLG_NODELAY, DNS_ZONEOPT_IXFRFROMDIFFS, inline_raw(), isc__strerror(), ISC_FALSE, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_LOG_WARNING, isc_log_write(), ISC_R_NOSPACE, ISC_R_NOTFOUND, ISC_R_RANGE, ISC_R_SUCCESS, isc_serial_gt(), ISC_STRERRORSIZE, LOCKED_ZONE, REQUIRE, RUNTIME_CHECK, zone_attachdb(), zone_detachdb(), zone_get_from_db(), zone_needdump(), zone_send_securedb(), and zone_send_secureserial().
Referenced by dns_zone_replacedb(), and zone_postload().
static void zone_attachdb | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [inline, static] |
Definition at line 14500 of file zone.c.
References dns_acache_setdb(), dns_db_attach(), ISC_R_EXISTS, ISC_R_SUCCESS, isc_result_totext(), REQUIRE, and UNEXPECTED_ERROR.
Referenced by stub_callback(), zone_load(), zone_postload(), and zone_replacedb().
static void zone_detachdb | ( | dns_zone_t * | zone | ) | [inline, static] |
Definition at line 14517 of file zone.c.
References dns_acache_putdb(), dns_db_detach(), and REQUIRE.
Referenced by zone_free(), zone_load(), zone_replacedb(), and zone_unload().
static isc_result_t default_journal | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 1622 of file zone.c.
References dns_zone_setstring(), DNS_ZONE_VALID, isc_mem_allocate, isc_mem_free, ISC_R_NOMEMORY, journal, LOCKED_ZONE, and REQUIRE.
Referenced by dns_zone_setfile3().
static void zone_xfrdone | ( | dns_zone_t * | zone, | |
isc_result_t | result | |||
) | [static] |
Definition at line 14526 of file zone.c.
References DNS_DUMP_DELAY, dns_journal_compact(), DNS_MAX_EXPIRE, dns_name_format(), DNS_NAME_FORMATSIZE, DNS_R_BADIXFR, DNS_R_UPTODATE, dns_result_totext(), dns_tsigkey_detach(), dns_xfrin_detach(), DNS_ZONE_CLRFLAG, DNS_ZONE_DEFAULTREFRESH, DNS_ZONE_DEFAULTRETRY, DNS_ZONE_FLAG, DNS_ZONE_JITTER_ADD, dns_zone_log(), DNS_ZONE_OPTION, DNS_ZONE_SETFLAG, DNS_ZONE_TIME_ADD, DNS_ZONE_VALID, DNS_ZONEFLAG_NOIXFR, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_FORCEXFER, DNS_ZONEFLG_HAVETIMERS, DNS_ZONEFLG_NEEDCOMPACT, DNS_ZONEFLG_NEEDNOTIFY, DNS_ZONEFLG_NEEDREFRESH, DNS_ZONEFLG_NODELAY, DNS_ZONEFLG_REFRESH, DNS_ZONEFLG_SOABEFOREAXFR, DNS_ZONEFLG_USEALTXFRSRC, DNS_ZONEOPT_USEALTXFRSRC, dns_zonestatscounter_xfrfail, dns_zonestatscounter_xfrsuccess, exit_check(), inc_stats(), inline_raw(), INSIST, ISC_FALSE, isc_file_settime(), ISC_LIST_UNLINK, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_LOG_INFO, ISC_R_FAILURE, ISC_R_FILENOTFOUND, ISC_R_NOSPACE, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_rwlocktype_read, isc_rwlocktype_write, isc_thread_yield, ISC_TRUE, LOCK_ZONE, namebuf, next_master(), now, queue_soa_query(), RANGE, REQUIRE, RWLOCK, RWUNLOCK, secure(), TIME_NOW, TRYLOCK_ZONE, UNLOCK_ZONE, zmgr_resume_xfrs(), zone_free(), zone_get_from_db(), zone_needdump(), zone_send_secureserial(), zone_settimer(), zone_unload(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by got_transfer_quota().
static isc_result_t zone_postload | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
isc_time_t | loadtime, | |||
isc_result_t | result | |||
) | [static] |
Definition at line 4186 of file zone.c.
References add_soa(), check_nsec3param(), cleanup(), dns_rdataset::covers, dns_db_getsigningtime(), dns_db_ispersistent(), dns_db_issecure(), dns_db_nodecount(), dns_db_ondestroy(), dns_db_rpz_ready(), DNS_DUMP_DELAY, DNS_EVENT_DBDESTROYED, dns_fixedname_init, dns_fixedname_name, dns_journal_destroy(), dns_journal_last_serial(), dns_journal_open(), DNS_JOURNAL_READ, dns_journal_rollforward(), DNS_JOURNALOPT_RESIGN, dns_lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_ZONE, DNS_MAX_EXPIRE, dns_name_format(), DNS_NAME_FORMATSIZE, DNS_R_BADZONE, DNS_R_NOJOURNAL, DNS_R_NOMASTERFILE, DNS_R_SEENINCLUDE, DNS_R_UPTODATE, dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdatatype_format(), DNS_RDATATYPE_FORMATSIZE, dns_result_totext(), DNS_ZONE_CLRFLAG, dns_zone_dlz, DNS_ZONE_FLAG, dns_zone_isdynamic(), dns_zone_key, dns_zone_log(), dns_zone_master, DNS_ZONE_OPTION, dns_zone_redirect, DNS_ZONE_SETFLAG, dns_zone_slave, dns_zone_stub, DNS_ZONE_TIME_ADD, DNS_ZONEFLG_HASINCLUDE, DNS_ZONEFLG_HAVETIMERS, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_LOADPENDING, DNS_ZONEFLG_NEEDSTARTUPNOTIFY, DNS_ZONEFLG_SENDSECURE, DNS_ZONEKEY_MAINTAIN, DNS_ZONEKEY_NORESIGN, DNS_ZONEKEY_OPTION, DNS_ZONEOPT_CHECKDUPRR, DNS_ZONEOPT_CHECKINTEGRITY, DNS_ZONEOPT_IXFRFROMDIFFS, DNS_ZONEOPT_NOMERGE, fixed, inline_raw(), inline_secure(), INSIST, integrity_checks(), isc__strerror(), isc_event_allocate(), ISC_FALSE, isc_file_getmodtime(), ISC_LIST_APPEND, ISC_LIST_HEAD, ISC_LIST_UNLINK, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_LOG_INFO, ISC_LOG_WARNING, isc_log_write(), isc_mem_free, isc_mem_put, ISC_R_FILENOTFOUND, ISC_R_NOTFOUND, ISC_R_RANGE, ISC_R_SUCCESS, ISC_R_UNEXPECTED, isc_random_jitter(), isc_rwlocktype_write, isc_serial_ge(), isc_serial_gt(), isc_stdtime_get(), ISC_STRERRORSIZE, isc_time_compare(), ISC_TRUE, journal, LOCKED_ZONE, maybe_send_secure(), dns_db::mctx, namebuf, now, RANGE, dns_rdataset::resign, resume_addnsec3chain(), resume_signingwithkey(), RUNTIME_CHECK, set_resigntime(), sync_keyzone(), TIME_NOW, UNEXPECTED_ERROR, zone_attachdb(), zone_check_dnskeys(), zone_check_dup(), zone_get_from_db(), zone_needdump(), zone_replacedb(), zone_saveunique(), zone_send_securedb(), zone_send_secureserial(), zone_settimer(), zone_unchanged(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by receive_secure_db(), zone_load(), and zone_loaddone().
static void zone_needdump | ( | dns_zone_t * | zone, | |
unsigned int | delay | |||
) | [static] |
Definition at line 9722 of file zone.c.
References DNS_ZONE_FLAG, DNS_ZONE_JITTER_ADD, DNS_ZONE_SETFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NEEDDUMP, ENTER, isc_time_compare(), isc_time_isepoch(), LOCKED_ZONE, now, REQUIRE, TIME_NOW, and zone_settimer().
Referenced by dns_zone_markdirty(), dump_done(), keydone(), keyfetch_done(), receive_secure_db(), receive_secure_serial(), setmodtime(), stub_callback(), sync_keyzone(), zone_dump(), zone_nsec3chain(), zone_postload(), zone_refreshkeys(), zone_replacedb(), zone_resigninc(), zone_sign(), and zone_xfrdone().
static void zone_shutdown | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 12157 of file zone.c.
References dns_dumpctx_cancel(), DNS_EVENT_ZONECONTROL, dns_loadctx_cancel(), dns_request_cancel(), dns_view_weakdetach(), dns_xfrin_shutdown(), dns_zone_detach(), DNS_ZONE_FLAG, dns_zone_idetach(), DNS_ZONE_SETFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_DUMPING, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_FLUSH, DNS_ZONEFLG_SHUTDOWN, dns_zonemgr_releasezone(), exit_check(), forward_cancel(), inline_raw(), inline_secure(), INSIST, ISC_FALSE, ISC_LIST_UNLINK, isc_refcount_current, isc_rwlocktype_write, isc_timer_detach(), ISC_TRUE, LOCK_ZONE, notify_cancel(), REQUIRE, RWLOCK, RWUNLOCK, secure(), UNLOCK_ZONE, UNUSED, zmgr_resume_xfrs(), zone_debuglog(), zone_free(), and zonemgr_cancelio().
Referenced by dns_zone_create().
static void zone_loaddone | ( | void * | arg, | |
isc_result_t | result | |||
) | [static] |
Definition at line 14795 of file zone.c.
References dns_load::callbacks, dns_load::db, dns_db_detach(), dns_db_endload(), DNS_LOAD_VALID, dns_loadctx_detach(), DNS_R_SEENINCLUDE, DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_idetach(), DNS_ZONEFLG_LOADING, DNS_ZONEFLG_THAW, ENTER, inline_raw(), inline_secure(), INSIST, ISC_FALSE, isc_mem_putanddetach, ISC_R_SUCCESS, isc_thread_yield, load(), dns_load::loadtime, LOCK_ZONE, dns_load::magic, dns_load::mctx, REQUIRE, secure(), TRYLOCK_ZONE, UNLOCK_ZONE, dns_rdatacallbacks::zone, dns_load::zone, zone_idetach(), zone_postload(), and zonemgr_putio().
Referenced by zone_gotreadhandle().
static isc_result_t zone_startload | ( | dns_db_t * | db, | |
dns_zone_t * | zone, | |||
isc_time_t | loadtime | |||
) | [static] |
Definition at line 2337 of file zone.c.
References callbacks, dns_load::callbacks, cleanup(), dns_load::db, dns_db_attach(), dns_db_beginload(), dns_db_detach(), dns_db_endload(), dns_master_loadfile5(), DNS_MASTER_MANYERRORS, DNS_R_CONTINUE, dns_rdatacallbacks_init(), DNS_ZONE_OPTION, dns_zone_rpz_enable_db(), DNS_ZONEOPT_MANYERRORS, get_master_options(), isc_mem_attach(), isc_mem_detach(), isc_mem_get, isc_mem_put, ISC_R_NOMEMORY, ISC_R_SUCCESS, ISC_TRUE, load(), LOAD_MAGIC, dns_load::loadtime, dns_load::magic, dns_load::mctx, dns_rdatacallbacks::rawdata, dns_rdatacallbacks::zone, dns_load::zone, zone_gotreadhandle(), zone_iattach(), zone_idetach(), zone_registerinclude(), zone_setrawdata(), and zonemgr_getio().
Referenced by zone_load().
static void zone_namerd_tostr | ( | dns_zone_t * | zone, | |
char * | buf, | |||
size_t | length | |||
) | [static] |
Definition at line 13033 of file zone.c.
References buffer, dns_name_dynamic(), dns_name_totext(), dns_rdataclass_totext(), dns_zone_key, dns_zone_redirect, inline_raw(), inline_secure(), isc_buffer_availablelength, isc_buffer_init, isc_buffer_putstr, isc_buffer_usedlength, ISC_R_FAILURE, ISC_R_SUCCESS, ISC_TRUE, and REQUIRE.
Referenced by dns_zone_name(), dns_zone_setclass(), dns_zone_setorigin(), dns_zone_settype(), and dns_zone_setview().
static void zone_name_tostr | ( | dns_zone_t * | zone, | |
char * | buf, | |||
size_t | length | |||
) | [static] |
Definition at line 13071 of file zone.c.
References buffer, dns_name_dynamic(), dns_name_totext(), isc_buffer_availablelength, isc_buffer_init, isc_buffer_putstr, isc_buffer_usedlength, ISC_R_FAILURE, ISC_R_SUCCESS, ISC_TRUE, and REQUIRE.
Referenced by dns_zone_setorigin().
static void zone_rdclass_tostr | ( | dns_zone_t * | zone, | |
char * | buf, | |||
size_t | length | |||
) | [static] |
Definition at line 13092 of file zone.c.
References buffer, dns_rdataclass_totext(), isc_buffer_init, isc_buffer_usedlength, and REQUIRE.
Referenced by dns_zone_setclass().
static void zone_viewname_tostr | ( | dns_zone_t * | zone, | |
char * | buf, | |||
size_t | length | |||
) | [static] |
Definition at line 13108 of file zone.c.
References buffer, isc_buffer_availablelength, isc_buffer_init, isc_buffer_putstr, isc_buffer_usedlength, and REQUIRE.
Referenced by dns_zone_setview().
static isc_result_t zone_send_secureserial | ( | dns_zone_t * | zone, | |
isc_uint32_t | serial | |||
) | [static] |
Definition at line 13807 of file zone.c.
References DNS_EVENT_ZONESECURESERIAL, DNS_ZONE_CLRFLAG, DNS_ZONEFLG_SENDSECURE, dummy, secure_event::e, INSIST, isc_event_allocate(), ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_task_send(), LOCKED_ZONE, receive_secure_serial(), and zone_iattach().
Referenced by dns_zone_markdirty(), maybe_send_secure(), zone_postload(), zone_replacedb(), and zone_xfrdone().
static void refresh_callback | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 11208 of file zone.c.
References detach(), dns_message_create(), dns_message_destroy(), dns_message_findname(), DNS_MESSAGE_INTENTPARSE, DNS_MESSAGEFLAG_AA, DNS_MESSAGEFLAG_TC, dns_rcode_badvers, dns_rcode_formerr, dns_rcode_noerror, dns_rcode_notimp, dns_rcode_refused, dns_rcode_servfail, dns_rcode_totext(), DNS_RDATA_INIT, dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_first(), dns_request_destroy(), dns_request_getresponse(), dns_request_usedtcp(), dns_result_totext(), DNS_SECTION_ANSWER, DNS_SECTION_AUTHORITY, DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_idetach(), DNS_ZONE_JITTER_ADD, dns_zone_log(), DNS_ZONE_OPTION, dns_zone_redirect, DNS_ZONE_SETFLAG, dns_zone_slave, dns_zone_stub, DNS_ZONE_TIME_ADD, DNS_ZONE_VALID, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_FORCEXFER, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NEEDREFRESH, DNS_ZONEFLG_NOEDNS, DNS_ZONEFLG_REFRESH, DNS_ZONEFLG_SOABEFOREAXFR, DNS_ZONEFLG_USEALTXFRSRC, DNS_ZONEFLG_USEVC, dns_zonemgr_unreachable(), DNS_ZONEOPT_MULTIMASTER, DNS_ZONEOPT_TRYTCPREFRESH, DNS_ZONEOPT_USEALTXFRSRC, ENTER, dns_message::flags, get_edns_expire(), INSIST, isc_buffer_init, isc_event_free(), ISC_FALSE, ISC_LOG_DEBUG, ISC_LOG_INFO, ISC_R_SUCCESS, ISC_R_TIMEDOUT, isc_serial_eq(), isc_serial_gt(), isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, isc_time_compare(), ISC_TRUE, LOCK_ZONE, master, message_count(), next_master(), now, ns_query(), queue_soa_query(), queue_xfrin(), dns_message::rcode, dns_requestevent::request, dns_requestevent::result, RUNTIME_CHECK, setmodtime(), TIME_NOW, UNLOCK_ZONE, UNUSED, isc_buffer::used, zone_debuglog(), zone_get_from_db(), and zone_settimer().
Referenced by soa_query().
static void stub_callback | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 10862 of file zone.c.
References dns_stub::db, dns_db_closeversion(), dns_db_detach(), DNS_MAX_EXPIRE, dns_message_create(), dns_message_destroy(), DNS_MESSAGE_INTENTPARSE, DNS_MESSAGEFLAG_AA, DNS_MESSAGEFLAG_TC, dns_rcode_formerr, dns_rcode_noerror, dns_rcode_notimp, dns_rcode_servfail, dns_rcode_totext(), dns_request_destroy(), dns_request_getresponse(), dns_request_usedtcp(), dns_result_totext(), DNS_SECTION_ANSWER, DNS_STUB_VALID, DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_idetach(), DNS_ZONE_JITTER_ADD, dns_zone_log(), DNS_ZONE_OPTION, DNS_ZONE_SETFLAG, DNS_ZONE_TIME_ADD, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_HAVETIMERS, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NOEDNS, DNS_ZONEFLG_REFRESH, DNS_ZONEFLG_USEALTXFRSRC, DNS_ZONEFLG_USEVC, dns_zonemgr_unreachableadd(), DNS_ZONEOPT_USEALTXFRSRC, ENTER, dns_message::flags, INSIST, isc_buffer_init, isc_event_free(), ISC_FALSE, isc_interval_set(), ISC_LOG_DEBUG, ISC_LOG_INFO, isc_mem_put, ISC_R_SUCCESS, ISC_R_TIMEDOUT, isc_rwlocktype_write, isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, ISC_TRUE, LOCK_ZONE, dns_stub::magic, master, dns_stub::mctx, message_count(), next_master(), now, ns_query(), queue_soa_query(), RANGE, dns_message::rcode, dns_requestevent::request, dns_requestevent::result, save_nsrrset(), TIME_NOW, UNLOCK_ZONE, UNUSED, isc_buffer::used, dns_stub::version, dns_stub::zone, zone_attachdb(), zone_debuglog(), zone_get_from_db(), zone_needdump(), zone_settimer(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by ns_query().
static void queue_soa_query | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 11602 of file zone.c.
References cancel_refresh(), DNS_EVENT_ZONE, DNS_ZONE_FLAG, DNS_ZONEFLG_EXITING, dummy, ENTER, isc_event_allocate(), isc_event_free(), ISC_R_SUCCESS, isc_ratelimiter_enqueue(), LOCKED_ZONE, REQUIRE, soa_query(), zone_iattach(), and zone_idetach().
Referenced by dns_zone_refresh(), refresh_callback(), stub_callback(), and zone_xfrdone().
static void soa_query | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 11723 of file zone.c.
References add_opt(), cancel_refresh(), cleanup(), create_query(), dns_message_destroy(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_peer_getforcetcp(), dns_peer_getrequestexpire(), dns_peer_getrequestnsid(), dns_peer_getsupportedns(), dns_peer_gettransferdscp(), dns_peer_gettransfersource(), dns_peer_getudpsize(), dns_peerlist_peerbyaddr(), dns_request_createvia4(), DNS_REQUESTOPT_TCP, dns_resolver_getudpsize(), dns_result_totext(), dns_tsigkey_detach(), dns_view_getpeertsig(), dns_view_gettsig(), DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_getview(), dns_zone_idetach(), dns_zone_log(), DNS_ZONE_SETFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_DIALREFRESH, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_NOEDNS, DNS_ZONEFLG_REFRESH, DNS_ZONEFLG_USEALTXFRSRC, DNS_ZONEFLG_USEVC, dns_zonestatscounter_soaoutv4, dns_zonestatscounter_soaoutv6, dns_notify::dscp, dummy, ENTER, inc_stats(), INSIST, isc_event_free(), ISC_EVENTATTR_CANCELED, ISC_FALSE, ISC_LOG_ERROR, isc_netaddr_format(), ISC_NETADDR_FORMATSIZE, isc_netaddr_fromsockaddr(), ISC_R_FAILURE, ISC_R_NOTFOUND, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, isc_sockaddr_equal(), isc_sockaddr_pf(), ISC_TRUE, dns_notify::key, LOCK_ZONE, namebuf, PF_INET6, refresh_callback(), REQUIRE, SEND_BUFFER_SIZE, timeout, UNLOCK_ZONE, UNUSED, zone_debuglog(), zone_iattach(), and zone_idetach().
Referenced by queue_soa_query().
static void ns_query | ( | dns_zone_t * | zone, | |
dns_rdataset_t * | soardataset, | |||
dns_stub_t * | stub | |||
) | [static] |
Definition at line 11922 of file zone.c.
References add_opt(), cancel_refresh(), cleanup(), create_query(), dns_stub::db, dns_db_addrdataset(), dns_db_attach(), dns_db_closeversion(), dns_db_create(), dns_db_detach(), dns_db_detachnode(), dns_db_findnode(), dns_db_newversion(), dns_db_settask(), dns_dbtype_stub, dns_message_destroy(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_peer_getrequestnsid(), dns_peer_getsupportedns(), dns_peer_gettransferdscp(), dns_peer_gettransfersource(), dns_peer_getudpsize(), dns_peerlist_peerbyaddr(), dns_request_createvia4(), DNS_REQUESTOPT_TCP, dns_resolver_getudpsize(), dns_result_totext(), DNS_STUB_VALID, dns_tsigkey_detach(), dns_view_getpeertsig(), dns_view_gettsig(), DNS_ZONE_FLAG, dns_zone_getview(), dns_zone_log(), DNS_ZONE_SETFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_DIALREFRESH, DNS_ZONEFLG_NOEDNS, DNS_ZONEFLG_USEALTXFRSRC, dns_notify::dscp, ENTER, INSIST, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_INFO, isc_mem_get, isc_mem_put, isc_netaddr_fromsockaddr(), ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, isc_rwlocktype_read, isc_sockaddr_pf(), ISC_TRUE, dns_notify::key, LOCKED_ZONE, dns_stub::magic, dns_stub::mctx, namebuf, dns_db::origin, PF_INET6, POST, REQUIRE, SEND_BUFFER_SIZE, stub_callback(), STUB_MAGIC, timeout, dns_stub::version, dns_stub::zone, zone_debuglog(), zone_iattach(), zone_idetach(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by refresh_callback(), and stub_callback().
static int message_count | ( | dns_message_t * | msg, | |
dns_section_t | section, | |||
dns_rdatatype_t | type | |||
) | [static] |
Definition at line 13222 of file zone.c.
References dns_message_currentname(), dns_message_firstname(), dns_message_nextname(), ISC_LIST_PREV, ISC_LIST_TAIL, ISC_R_SUCCESS, and dns_rdataset::type.
Referenced by refresh_callback(), and stub_callback().
static void notify_cancel | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 10024 of file zone.c.
References dns_adb_cancelfind(), dns_request_cancel(), dns_notify::find, ISC_LIST_HEAD, ISC_LIST_NEXT, LOCKED_ZONE, notify(), dns_notify::request, and REQUIRE.
Referenced by zone_shutdown().
static void notify_find_address | ( | dns_notify_t * | notify | ) | [static] |
Definition at line 10294 of file zone.c.
References destroy(), dns_adb_createfind(), DNS_ADBFIND_INET, DNS_ADBFIND_INET6, DNS_ADBFIND_RETURNLAME, DNS_ADBFIND_WANTEVENT, DNS_NOTIFY_VALID, dns_rootname, dns_notify::find, ISC_FALSE, ISC_R_SUCCESS, LOCK_ZONE, notify_destroy(), notify_send(), dns_notify::ns, dns_adbfind::options, process_adb_event(), REQUIRE, UNLOCK_ZONE, and dns_notify::zone.
Referenced by process_adb_event(), and zone_notify().
static void notify_send | ( | dns_notify_t * | notify | ) | [static] |
Definition at line 10495 of file zone.c.
References cleanup(), DNS_NOTIFY_NOSOA, DNS_NOTIFY_STARTUP, DNS_NOTIFY_VALID, dns_notify::dst, dns_notify::find, dns_notify::flags, ISC_LIST_APPEND, ISC_LIST_HEAD, ISC_LIST_NEXT, ISC_R_SUCCESS, ISC_TF, ISC_TRUE, dns_adbfind::list, LOCKED_ZONE, dns_notify::mctx, notify_create(), notify_destroy(), notify_isqueued(), notify_isself(), notify_send_queue(), REQUIRE, dns_adbaddrinfo::sockaddr, dns_notify::zone, and zone_iattach().
Referenced by notify_find_address(), and process_adb_event().
static isc_result_t notify_createmessage | ( | dns_zone_t * | zone, | |
unsigned int | flags, | |||
dns_message_t ** | messagep | |||
) | [static] |
Definition at line 12438 of file zone.c.
References isc_region::base, cleanup(), dns_db_attach(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detach(), dns_db_detachnode(), dns_db_findnode(), dns_db_findrdataset(), dns_message_addname(), dns_message_create(), dns_message_destroy(), dns_message_gettempname(), dns_message_gettemprdata(), dns_message_gettemprdatalist(), dns_message_gettemprdataset(), DNS_MESSAGE_INTENTRENDER, dns_message_puttempname(), dns_message_puttemprdata(), dns_message_puttemprdatalist(), dns_message_puttemprdataset(), dns_message_takebuffer(), DNS_MESSAGEFLAG_AA, dns_name_clone(), dns_name_init(), DNS_NOTIFY_NOSOA, dns_opcode_notify, dns_rdata_fromregion(), dns_rdata_init(), DNS_RDATA_INIT, dns_rdata_toregion(), dns_rdatalist_tordataset(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_makequestion(), dns_rdataset_next(), DNS_SECTION_ANSWER, DNS_SECTION_QUESTION, DNS_ZONE_VALID, dns_message::flags, INSIST, isc_buffer_allocate(), isc_buffer_putmem, isc_buffer_usedregion, ISC_FALSE, ISC_LIST_APPEND, ISC_R_NOMORE, ISC_R_SUCCESS, isc_rwlocktype_read, isc_region::length, dns_message::opcode, r, dns_rdatalist::rdclass, dns_rdata::rdclass, dns_rdataset::rdclass, dns_message::rdclass, REQUIRE, tempname, dns_rdataset::ttl, dns_rdatalist::ttl, dns_rdatalist::type, dns_rdata::type, version, ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by notify_send_toaddr().
static void notify_done | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 13338 of file zone.c.
References dns_message_create(), dns_message_destroy(), DNS_MESSAGE_INTENTPARSE, DNS_MESSAGEPARSE_PRESERVEORDER, DNS_NOTIFY_NOSOA, DNS_NOTIFY_STARTUP, DNS_NOTIFY_VALID, dns_rcode_formerr, dns_rcode_totext(), dns_request_destroy(), dns_request_getresponse(), dns_result_totext(), dns_notify::dst, dns_notify::flags, INSIST, isc_buffer_init, isc_event_free(), ISC_FALSE, ISC_LOG_DEBUG, ISC_R_SUCCESS, ISC_R_TIMEDOUT, isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, ISC_TF, notify(), notify_destroy(), notify_log(), notify_send_queue(), dns_message::rcode, dns_notify::request, dns_requestevent::request, REQUIRE, dns_requestevent::result, UNUSED, isc_buffer::used, and dns_notify::zone.
Referenced by notify_send_toaddr().
static void notify_send_toaddr | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 10357 of file zone.c.
References cleanup(), DNS_FETCHOPT_TCP, dns_message_destroy(), DNS_NOTIFY_VALID, dns_peer_getforcetcp(), dns_peer_getnotifydscp(), dns_peer_getnotifysource(), dns_peerlist_peerbyaddr(), dns_request_createvia4(), dns_tsigkey_detach(), dns_view_getpeertsig(), DNS_ZONE_FLAG, DNS_ZONEFLG_DIALNOTIFY, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_LOADED, dns_zonestatscounter_notifyoutv4, dns_zonestatscounter_notifyoutv6, dns_notify::dscp, dns_notify::dst, dns_notify::flags, IN6_IS_ADDR_V4MAPPED, inc_stats(), isc_event_free(), ISC_EVENTATTR_CANCELED, ISC_FALSE, ISC_LOG_DEBUG, ISC_LOG_ERROR, isc_netaddr_fromsockaddr(), ISC_R_CANCELED, ISC_R_NOTFOUND, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, isc_sockaddr_pf(), ISC_TRUE, dns_notify::key, LOCK_ZONE, notify(), notify_createmessage(), notify_destroy(), notify_done(), notify_log(), PF_INET6, dns_notify::request, REQUIRE, isc_sockaddr::sin6, sockaddr_in6::sin6_addr, timeout, isc_sockaddr::type, UNLOCK_ZONE, UNUSED, and dns_notify::zone.
Referenced by notify_send_queue().
static isc_result_t zone_dump | ( | dns_zone_t * | zone, | |
isc_boolean_t | compact | |||
) | [static] |
Definition at line 9854 of file zone.c.
References dns_db_attach(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detach(), DNS_DUMP_DELAY, dns_master_dump3(), dns_master_initrawheader(), dns_master_style_default, dns_master_style_keyzone, dns_masterformat_none, DNS_R_CONTINUE, DNS_R_NOMASTERFILE, DNS_R_NOTLOADED, DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_key, DNS_ZONE_SETFLAG, dns_zone_stub, DNS_ZONE_VALID, DNS_ZONEFLG_DUMPING, DNS_ZONEFLG_FLUSH, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NEEDDUMP, dummy, ENTER, get_raw_serial(), inline_secure(), ISC_FALSE, isc_mem_free, isc_mem_strdup, ISC_R_SUCCESS, isc_rwlocktype_read, isc_time_settoepoch(), ISC_TRUE, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, version, zone_gotwritehandle(), zone_iattach(), zone_idetach(), zone_needdump(), ZONEDB_LOCK, ZONEDB_UNLOCK, and zonemgr_getio().
Referenced by dns_zone_dump(), dns_zone_flush(), dump_done(), and zone_maintenance().
static void got_transfer_quota | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 14953 of file zone.c.
References cleanup(), dns_peer_getrequestixfr(), dns_peerlist_peerbyaddr(), dns_view_getpeertsig(), dns_view_gettsig(), dns_xfrin_create3(), DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_getview(), dns_zone_log(), DNS_ZONEFLAG_NOIXFR, DNS_ZONEFLG_EXITING, DNS_ZONEFLG_FORCEXFER, DNS_ZONEFLG_SOABEFOREAXFR, dns_zonemgr_unreachable(), dns_zonestatscounter_axfrreqv4, dns_zonestatscounter_axfrreqv6, dns_zonestatscounter_ixfrreqv4, dns_zonestatscounter_ixfrreqv6, dns_notify::dscp, inc_stats(), INSIST, isc_event_free(), ISC_FALSE, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_LOG_INFO, isc_netaddr_fromsockaddr(), ISC_R_CANCELED, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_result_totext(), isc_rwlocktype_read, isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, isc_sockaddr_pf(), ISC_TF, ISC_TRUE, LOCK_ZONE, master, now, PF_INET6, TIME_NOW, UNLOCK_ZONE, UNUSED, zone_xfrdone(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by zmgr_start_xfrin_ifquota().
static isc_result_t zmgr_start_xfrin_ifquota | ( | dns_zonemgr_t * | zmgr, | |
dns_zone_t * | zone | |||
) | [static] |
Definition at line 15915 of file zone.c.
References DNS_EVENT_ZONESTARTXFRIN, dns_peer_gettransfers(), dns_peerlist_peerbyaddr(), DNS_ZONE_FLAG, dns_zone_log(), DNS_ZONEFLG_EXITING, secure_event::e, got_transfer_quota(), INSIST, isc_event_allocate(), ISC_LIST_APPEND, ISC_LIST_HEAD, ISC_LIST_NEXT, ISC_LIST_UNLINK, ISC_LOG_INFO, isc_netaddr_equal(), isc_netaddr_fromsockaddr(), ISC_R_NOMEMORY, ISC_R_QUOTA, ISC_R_SUCCESS, isc_task_send(), LOCK_ZONE, dns_zonemgr::mctx, dns_zonemgr::transfersin, dns_zonemgr::transfersperns, UNLOCK_ZONE, dns_zonemgr::waiting_for_xfrin, and dns_zonemgr::xfrin_in_progress.
Referenced by queue_xfrin(), and zmgr_resume_xfrs().
static void zmgr_resume_xfrs | ( | dns_zonemgr_t * | zmgr, | |
isc_boolean_t | multi | |||
) | [static] |
Definition at line 15866 of file zone.c.
References dns_zone_log(), ISC_LIST_HEAD, ISC_LIST_NEXT, ISC_LOG_DEBUG, ISC_R_QUOTA, ISC_R_SUCCESS, isc_result_totext(), dns_zonemgr::waiting_for_xfrin, and zmgr_start_xfrin_ifquota().
Referenced by dns_zonemgr_forcemaint(), dns_zonemgr_resumexfrs(), zone_shutdown(), and zone_xfrdone().
static void zonemgr_free | ( | dns_zonemgr_t * | zmgr | ) | [static] |
Definition at line 15809 of file zone.c.
References DESTROYLOCK, INSIST, dns_zonemgr::iolock, ISC_LIST_EMPTY, isc_mem_detach(), isc_mem_put, isc_ratelimiter_detach(), isc_rwlock_destroy(), dns_zonemgr::magic, dns_zonemgr::mctx, dns_notify::mctx, dns_zonemgr::notifyrl, dns_zonemgr::refreshrl, dns_zonemgr::refs, dns_zonemgr::rwlock, dns_zonemgr::startupnotifyrl, dns_zonemgr::startuprefreshrl, dns_zonemgr::urlock, and dns_zonemgr::zones.
Referenced by dns_zonemgr_detach(), and dns_zonemgr_releasezone().
static isc_result_t zonemgr_getio | ( | dns_zonemgr_t * | zmgr, | |
isc_boolean_t | high, | |||
isc_task_t * | task, | |||
isc_taskaction_t | action, | |||
void * | arg, | |||
dns_io_t ** | iop | |||
) | [static] |
Definition at line 16031 of file zone.c.
References DNS_EVENT_IOREADY, DNS_ZONEMGR_VALID, dns_zonemgr::high, IO_MAGIC, dns_zonemgr::ioactive, dns_zonemgr::iolimit, dns_zonemgr::iolock, isc_event_allocate(), ISC_LINK_INIT, ISC_LIST_APPEND, isc_mem_get, isc_mem_put, ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_task_attach(), isc_task_send(), ISC_TF, LOCK, dns_zonemgr::low, dns_zonemgr::mctx, REQUIRE, and UNLOCK.
Referenced by zone_dump(), and zone_startload().
static void zonemgr_putio | ( | dns_io_t ** | iop | ) | [static] |
Definition at line 16077 of file zone.c.
References DNS_IO_VALID, HEAD, dns_zonemgr::high, INSIST, dns_zonemgr::ioactive, dns_zonemgr::iolock, ISC_LINK_LINKED, ISC_LIST_UNLINK, isc_mem_put, isc_task_detach(), isc_task_send(), LOCK, dns_zonemgr::low, dns_zonemgr::mctx, REQUIRE, and UNLOCK.
Referenced by dump_done(), and zone_loaddone().
static void zonemgr_cancelio | ( | dns_io_t * | io | ) | [static] |
Definition at line 16115 of file zone.c.
References DNS_IO_VALID, INSIST, ISC_EVENTATTR_CANCELED, ISC_FALSE, ISC_LINK_LINKED, ISC_LIST_UNLINK, isc_task_send(), ISC_TRUE, LOCK, REQUIRE, and UNLOCK.
Referenced by zone_shutdown(), and zone_unload().
static isc_result_t zone_get_from_db | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
unsigned int * | nscount, | |||
unsigned int * | soacount, | |||
isc_uint32_t * | serial, | |||
isc_uint32_t * | refresh, | |||
isc_uint32_t * | retry, | |||
isc_uint32_t * | expire, | |||
isc_uint32_t * | minimum, | |||
unsigned int * | errors | |||
) | [static] |
Definition at line 4920 of file zone.c.
References answer, closeversion(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detachnode(), dns_db_findnode(), ISC_FALSE, ISC_R_SUCCESS, ISC_TRUE, dns_db::origin, REQUIRE, version, zone_count_ns_rr(), and zone_load_soa_rr().
Referenced by dns_zone_getserial2(), dns_zone_markdirty(), dns_zone_notifyreceive(), get_raw_serial(), maybe_send_secure(), refresh_callback(), stub_callback(), zone_postload(), zone_replacedb(), and zone_xfrdone().
static void zone_freedbargs | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 1346 of file zone.c.
References isc_mem_free, and isc_mem_put.
Referenced by dns_zone_setdbtype(), and zone_free().
static void forward_callback | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 15197 of file zone.c.
References dns_forward::addr, dns_forward::callback, dns_forward::callback_arg, DNS_FORWARD_VALID, dns_message_create(), dns_message_destroy(), DNS_MESSAGE_INTENTPARSE, DNS_MESSAGEPARSE_CLONEBUFFER, DNS_MESSAGEPARSE_PRESERVEORDER, dns_rcode_badvers, dns_rcode_formerr, dns_rcode_noerror, dns_rcode_notauth, dns_rcode_notimp, dns_rcode_notzone, dns_rcode_nxdomain, dns_rcode_nxrrset, dns_rcode_refused, dns_rcode_servfail, dns_rcode_totext(), dns_rcode_yxdomain, dns_rcode_yxrrset, dns_request_destroy(), dns_request_getresponse(), dns_result_totext(), dns_zone_log(), DNS_ZONE_VALID, ENTER, forward_destroy(), INSIST, isc_buffer_init, isc_event_free(), ISC_LOG_DEBUG, ISC_LOG_INFO, ISC_LOG_WARNING, ISC_R_SUCCESS, isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, master, next_master(), dns_message::rcode, dns_forward::request, dns_requestevent::request, dns_requestevent::result, sendtomaster(), UNUSED, isc_buffer::used, dns_forward::which, and dns_forward::zone.
Referenced by forward_action(), and sendtomaster().
static void zone_saveunique | ( | dns_zone_t * | zone, | |
const char * | path, | |||
const char * | templat | |||
) | [static] |
Definition at line 16141 of file zone.c.
References cleanup(), dns_zone_log(), isc_file_renameunique(), isc_file_template(), ISC_LOG_WARNING, isc_mem_get, isc_mem_put, and ISC_R_SUCCESS.
Referenced by zone_postload().
static void zone_maintenance | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 9374 of file zone.c.
References dns_result_totext(), DNS_ZONE_FLAG, dns_zone_key, dns_zone_log(), dns_zone_master, dns_zone_redirect, dns_zone_refresh(), dns_zone_slave, dns_zone_stub, DNS_ZONE_VALID, DNS_ZONEFLG_DIALREFRESH, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_LOADPENDING, DNS_ZONEFLG_NEEDDUMP, DNS_ZONEFLG_NEEDNOTIFY, DNS_ZONEFLG_NEEDSTARTUPNOTIFY, DNS_ZONEFLG_REFRESHING, ENTER, ISC_LOG_WARNING, ISC_R_SUCCESS, isc_time_compare(), isc_time_isepoch(), isc_time_seconds(), ISC_TRUE, LOCK_ZONE, now, REQUIRE, set_key_expiry_warning(), TIME_NOW, UNLOCK_ZONE, was_dumping(), zone_dump(), zone_expire(), zone_notify(), zone_nsec3chain(), zone_refreshkeys(), zone_rekey(), zone_resigninc(), zone_settimer(), and zone_sign().
Referenced by zone_timer().
static void zone_notify | ( | dns_zone_t * | zone, | |
isc_time_t * | now | |||
) | [static] |
Definition at line 10553 of file zone.c.
References dns_db_attach(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detach(), dns_db_detachnode(), dns_db_findnode(), dns_db_findrdataset(), dns_name_compare(), dns_name_dup(), dns_name_dynamic(), dns_name_free(), dns_name_init(), DNS_NOTIFY_NOSOA, DNS_NOTIFY_STARTUP, dns_notifytype_explicit, dns_notifytype_masteronly, dns_notifytype_no, DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_next(), dns_tsigkey_detach(), dns_view_gettsig(), DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_getview(), dns_zone_iattach(), dns_zone_master, DNS_ZONE_OPTION, DNS_ZONE_TIME_ADD, DNS_ZONE_VALID, DNS_ZONEFLG_DIALNOTIFY, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NEEDNOTIFY, DNS_ZONEFLG_NEEDSTARTUPNOTIFY, DNS_ZONEOPT_NOTIFYTOSOA, dns_notify::dst, dns_notify::flags, INSIST, ISC_FALSE, ISC_LIST_APPEND, ISC_LOG_INFO, ISC_R_SUCCESS, isc_rwlocktype_read, ISC_TRUE, dns_notify::key, LOCK_ZONE, master, notify(), notify_create(), notify_destroy(), notify_find_address(), notify_isqueued(), notify_log(), notify_send_queue(), dns_notify::ns, origin, REQUIRE, RUNTIME_CHECK, UNLOCK_ZONE, version, dns_notify::zone, zone_iattach(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by zone_maintenance().
static void dump_done | ( | void * | arg, | |
isc_result_t | result | |||
) | [static] |
Definition at line 9755 of file zone.c.
References dns_db_getsoaserial(), DNS_DUMP_DELAY, dns_dumpctx_db(), dns_dumpctx_detach(), dns_dumpctx_version(), dns_journal_compact(), dns_result_totext(), DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_idetach(), dns_zone_log(), DNS_ZONE_SETFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_DUMPING, DNS_ZONEFLG_FLUSH, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_NEEDCOMPACT, DNS_ZONEFLG_NEEDDUMP, ENTER, inline_raw(), ISC_FALSE, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_R_CANCELED, ISC_R_NOSPACE, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_serial_lt(), isc_time_settoepoch(), ISC_TRUE, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, version, zone_dump(), zone_needdump(), and zonemgr_putio().
Referenced by zone_gotwritehandle().
static isc_result_t zone_signwithkey | ( | dns_zone_t * | zone, | |
dns_secalg_t | algorithm, | |||
isc_uint16_t | keyid, | |||
isc_boolean_t | delete | |||
) | [static] |
static isc_result_t delete_nsec | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
dns_dbnode_t * | node, | |||
dns_name_t * | name, | |||
dns_diff_t * | diff | |||
) | [static] |
Definition at line 6896 of file zone.c.
References CHECK, dns_db_findrdataset(), DNS_DIFFOP_DEL, DNS_RDATA_INIT, dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_next(), ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, dns_rdataset::ttl, and update_one_rr().
Referenced by updatesecure(), and zone_nsec3chain().
static void zone_rekey | ( | dns_zone_t * | zone | ) | [static] |
static isc_result_t zone_send_securedb | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [static] |
Definition at line 14260 of file zone.c.
References dns_db_attach(), DNS_EVENT_ZONESECUREDB, DNS_ZONE_CLRFLAG, DNS_ZONEFLG_SENDSECURE, dummy, secure_event::e, INSIST, isc_event_allocate(), ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_task_send(), LOCKED_ZONE, receive_secure_db(), secure(), and zone_iattach().
Referenced by maybe_send_secure(), zone_postload(), and zone_replacedb().
static void setrl | ( | isc_ratelimiter_t * | rl, | |
unsigned int * | rate, | |||
unsigned int | value | |||
) | [static] |
Definition at line 16184 of file zone.c.
References isc_interval_set(), ISC_R_SUCCESS, isc_ratelimiter_setinterval(), isc_ratelimiter_setpertic(), dns_notify::ns, RUNTIME_CHECK, and s.
Referenced by dns_zonemgr_create().
typedef ISC_LIST | ( | nsec3param_t | ) |
static void inc_stats | ( | dns_zone_t * | zone, | |
isc_statscounter_t | counter | |||
) | [inline, static] |
Increment resolver-related statistics counters. Zone must be locked.
Definition at line 874 of file zone.c.
References isc_stats_increment().
isc_result_t dns_zone_create | ( | dns_zone_t ** | zonep, | |
isc_mem_t * | mctx | |||
) |
Creates a new empty zone and attach '*zonep' to it.
Requires:
Definition at line 884 of file zone.c.
References dbargc_default, dbargv_default, DESTROYLOCK, DNS_DEFAULT_IDLEIN, DNS_DEFAULT_IDLEOUT, DNS_EVENT_ZONECONTROL, dns_masterformat_none, dns_name_init(), dns_notifytype_yes, DNS_RPZ_INVALID_NUM, dns_severity_ignore, dns_updatemethod_increment, DNS_ZONE_DEFAULTREFRESH, DNS_ZONE_DEFAULTRETRY, DNS_ZONE_MAXREFRESH, DNS_ZONE_MAXRETRY, DNS_ZONE_MINREFRESH, DNS_ZONE_MINRETRY, dns_zone_none, dns_zone_setdbtype(), dns_zonestat_none, ISC_EVENT_INIT, ISC_FALSE, ISC_LINK_INIT, ISC_LIST_INIT, isc_mem_attach(), isc_mem_get, isc_mem_putanddetach, isc_mutex_init, ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_refcount_decrement, isc_refcount_destroy, isc_refcount_init(), isc_sockaddr_any(), isc_sockaddr_any6(), isc_time_settoepoch(), ISC_TRUE, MAX_XFER_TIME, now, REQUIRE, TIME_NOW, ZONE_MAGIC, zone_shutdown(), ZONEDB_DESTROYLOCK, and ZONEDB_INITLOCK.
Referenced by configure_zone(), dns64_reverse(), dns_dlz_writeablezone(), dns_test_makezone(), dns_zonemgr_createzone(), and load_zone().
static void zone_free | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 1086 of file zone.c.
References DESTROYLOCK, dns_acache_detach(), dns_acl_detach(), dns_db_detach(), dns_dbiterator_destroy(), dns_name_dynamic(), dns_name_free(), dns_request_destroy(), dns_rpz_detach_rpzs(), DNS_RPZ_INVALID_NUM, dns_severity_ignore, dns_ssutable_detach(), dns_stats_detach(), dns_zone_setalsonotify(), dns_zone_setmasterswithkeys(), DNS_ZONE_VALID, INSIST, ISC_LIST_HEAD, ISC_LIST_UNLINK, isc_mem_detach(), isc_mem_free, isc_mem_put, ISC_R_SUCCESS, isc_refcount_current, isc_refcount_destroy, isc_stats_detach(), isc_task_detach(), LOCKED_ZONE, dns_notify::mctx, REQUIRE, RUNTIME_CHECK, zone_detachdb(), zone_freedbargs(), and ZONEDB_DESTROYLOCK.
Referenced by dns_zone_detach(), dns_zone_idetach(), keyfetch_done(), zone_shutdown(), and zone_xfrdone().
static isc_boolean_t inline_secure | ( | dns_zone_t * | zone | ) | [inline, static] |
Definition at line 1215 of file zone.c.
References DNS_ZONE_VALID, ISC_FALSE, ISC_TRUE, and REQUIRE.
Referenced by dns_zone_notifyreceive(), dns_zone_setclass(), dns_zone_setorigin(), dns_zone_setview(), dumptostream(), receive_secure_db(), set_resigntime(), zone_dump(), zone_gotwritehandle(), zone_load(), zone_loaddone(), zone_namerd_tostr(), zone_postload(), and zone_shutdown().
static isc_boolean_t inline_raw | ( | dns_zone_t * | zone | ) | [inline, static] |
Definition at line 1227 of file zone.c.
References DNS_ZONE_VALID, ISC_FALSE, ISC_TRUE, and REQUIRE.
Referenced by dns_zone_loadandthaw(), dns_zone_markdirty(), dns_zone_replacedb(), dump_done(), zone_loaddone(), zone_namerd_tostr(), zone_postload(), zone_replacedb(), zone_shutdown(), and zone_xfrdone().
void dns_zone_setclass | ( | dns_zone_t * | zone, | |
dns_rdataclass_t | rdclass | |||
) |
Sets the class of a zone. This operation can only be performed once on a zone.
Require:
Definition at line 1238 of file zone.c.
References dns_zone_setclass(), DNS_ZONE_VALID, inline_secure(), INSIST, isc_mem_free, isc_mem_strdup, LOCK_ZONE, namebuf, REQUIRE, UNLOCK_ZONE, zone_namerd_tostr(), and zone_rdclass_tostr().
Referenced by add_keydata_zone(), create_empty_zone(), dns64_reverse(), dns_test_makezone(), dns_zone_setclass(), load_zone(), and ns_zone_configure().
dns_rdataclass_t dns_zone_getclass | ( | dns_zone_t * | zone | ) |
Returns the current zone class.
Requires:
Definition at line 1269 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by configure_staticstub(), configure_staticstub_serveraddrs(), configure_staticstub_servernames(), dns_xfrin_create3(), freezezones(), ns_server_freeze(), ns_server_sync(), send_forward_event(), and update_log().
void dns_zone_setnotifytype | ( | dns_zone_t * | zone, | |
dns_notifytype_t | notifytype | |||
) |
Sets zone notify method to "notifytype".
Definition at line 1276 of file zone.c.
References DNS_ZONE_VALID, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by add_keydata_zone(), create_empty_zone(), dns64_reverse(), and ns_zone_configure().
isc_result_t dns_zone_getserial2 | ( | dns_zone_t * | zone, | |
isc_uint32_t * | serialp | |||
) |
Definition at line 1285 of file zone.c.
References DNS_R_NOTLOADED, DNS_ZONE_VALID, ISC_R_FAILURE, ISC_R_SUCCESS, isc_rwlocktype_read, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, zone_get_from_db(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by dns_zone_getserial().
isc_uint32_t dns_zone_getserial | ( | dns_zone_t * | zone | ) |
Returns the current serial number of the zone. On success, the SOA serial of the zone will be copied into '*serialp'. dns_zone_getserial() cannot catch failure cases and is deprecated by dns_zone_getserial2().
Requires:
Definition at line 1309 of file zone.c.
References dns_zone_getserial2(), and ISC_R_SUCCESS.
Referenced by ns_server_zonestatus().
void dns_zone_settype | ( | dns_zone_t * | zone, | |
dns_zonetype_t | type | |||
) |
Sets the zone type. This operation can only be performed once on a zone.
Requires:
Definition at line 1324 of file zone.c.
References dns_zone_none, DNS_ZONE_VALID, isc_mem_free, isc_mem_strdup, LOCK_ZONE, namebuf, REQUIRE, UNLOCK_ZONE, and zone_namerd_tostr().
Referenced by add_keydata_zone(), create_empty_zone(), dns64_reverse(), dns_test_makezone(), load_zone(), ns_zone_configure(), and ns_zone_configure_writeable_dlz().
isc_result_t dns_zone_getdbtype | ( | dns_zone_t * | zone, | |
char *** | argv, | |||
isc_mem_t * | mctx | |||
) |
Returns the current dbtype. isc_mem_free() should be used to free 'argv' after use.
Require:
Definition at line 1361 of file zone.c.
References DNS_ZONE_VALID, isc_mem_allocate, ISC_R_NOMEMORY, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by check_dbtype().
isc_result_t dns_zone_setdbtype | ( | dns_zone_t * | zone, | |
unsigned int | dbargc, | |||
const char *const * | dbargv | |||
) |
Sets the database type to dbargv[0] and database arguments to subsequent dbargv elements. 'db_type' is not checked to see if it is a valid database type.
Require:
Definition at line 1394 of file zone.c.
References DNS_ZONE_VALID, isc_mem_free, isc_mem_get, isc_mem_put, isc_mem_strdup, ISC_R_NOMEMORY, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, and zone_freedbargs().
Referenced by create_empty_zone(), dns64_reverse(), dns_zone_create(), load_zone(), and ns_zone_configure().
void dns_zone_setview | ( | dns_zone_t * | zone, | |
dns_view_t * | view | |||
) |
Associate the zone with a view.
Require:
Definition at line 1441 of file zone.c.
References dns_view_weakattach(), dns_view_weakdetach(), dns_zone_setview(), DNS_ZONE_VALID, inline_secure(), INSIST, isc_mem_free, isc_mem_strdup, LOCK_ZONE, namebuf, REQUIRE, UNLOCK_ZONE, zone_namerd_tostr(), and zone_viewname_tostr().
Referenced by add_keydata_zone(), configure_zone(), create_empty_zone(), dns64_reverse(), dns_dlz_writeablezone(), dns_test_makezone(), and dns_zone_setview().
dns_view_t* dns_zone_getview | ( | dns_zone_t * | zone | ) |
Returns the zone's associated view.
Requires:
Definition at line 1468 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by adjust_interfaces(), asyncload(), ATF_TC_BODY(), configure_zone_acl(), freezezones(), got_transfer_quota(), ns_query(), ns_server_delzone(), ns_server_freeze(), ns_server_showzone(), ns_server_sync(), ns_stats_dump(), ns_zone_configure(), removed(), soa_query(), xfrin_recv_done(), and zone_notify().
isc_result_t dns_zone_setorigin | ( | dns_zone_t * | zone, | |
const dns_name_t * | origin | |||
) |
Sets the zones origin to 'origin'.
Require:
Definition at line 1476 of file zone.c.
References dns_name_dup(), dns_name_dynamic(), dns_name_free(), dns_name_init(), dns_zone_setorigin(), DNS_ZONE_VALID, inline_secure(), INSIST, isc_mem_free, isc_mem_strdup, ISC_R_SUCCESS, LOCK_ZONE, namebuf, REQUIRE, UNLOCK_ZONE, zone_name_tostr(), and zone_namerd_tostr().
Referenced by add_keydata_zone(), configure_zone(), create_empty_zone(), dns64_reverse(), dns_dlz_writeablezone(), dns_test_makezone(), dns_zone_setorigin(), and load_zone().
void dns_zone_setacache | ( | dns_zone_t * | zone, | |
dns_acache_t * | acache | |||
) |
Associate the zone with an additional cache.
Require: 'zone' to be a valid zone. 'acache' to be a non NULL pointer.
Ensures: 'zone' will have a reference to 'acache'
Definition at line 1508 of file zone.c.
References dns_acache_attach(), dns_acache_detach(), dns_acache_setdb(), DNS_ZONE_VALID, ISC_R_EXISTS, ISC_R_SUCCESS, isc_result_totext(), isc_rwlocktype_read, LOCK_ZONE, REQUIRE, UNEXPECTED_ERROR, UNLOCK_ZONE, ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by add_keydata_zone(), and configure_zone().
static isc_result_t dns_zone_setstring | ( | dns_zone_t * | zone, | |
char ** | field, | |||
const char * | value | |||
) | [static] |
Definition at line 1538 of file zone.c.
References isc_mem_free, isc_mem_strdup, ISC_R_NOMEMORY, and ISC_R_SUCCESS.
Referenced by default_journal(), dns_zone_setfile3(), and dns_zone_setjournal().
isc_result_t dns_zone_setfile | ( | dns_zone_t * | zone, | |
const char * | file | |||
) |
Definition at line 1557 of file zone.c.
References dns_master_style_default, dns_masterformat_text, and dns_zone_setfile3().
Referenced by add_keydata_zone(), and ATF_TC_BODY().
isc_result_t dns_zone_setfile2 | ( | dns_zone_t * | zone, | |
const char * | file, | |||
dns_masterformat_t | format | |||
) |
Definition at line 1563 of file zone.c.
References dns_master_style_default, and dns_zone_setfile3().
Referenced by load_zone().
isc_result_t dns_zone_setfile3 | ( | dns_zone_t * | zone, | |
const char * | file, | |||
dns_masterformat_t | format, | |||
const dns_master_style_t * | style | |||
) |
Sets the name of the master file in the format of 'format' from which the zone loads its database to 'file'.
For zones that have no associated master file, 'file' will be NULL.
For zones with persistent databases, the file name setting is ignored.
dns_zone_setfile() is a backward-compatible form of dns_zone_setfile2(), which always specifies the dns_masterformat_text (RFC1035) format.
dns_zone_setfile2() is a backward-compatible form of dns_zone_setfile3(), which also specifies the style that should be used if a zone using the 'text' masterformat is ever dumped.
Require:
Definition at line 1571 of file zone.c.
References default_journal(), dns_masterformat_text, dns_zone_setstring(), DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by dns_zone_setfile(), dns_zone_setfile2(), and ns_zone_configure().
const char* dns_zone_getfile | ( | dns_zone_t * | zone | ) |
Gets the name of the zone's master file, if any.
Requires:
Definition at line 1593 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by create_empty_zone(), ns_server_delzone(), ns_server_zonestatus(), and ns_zone_reusable().
dns_ttl_t dns_zone_getmaxttl | ( | dns_zone_t * | zone | ) |
Gets the max ttl of the zone.
Requires:
Definition at line 1600 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by update_action().
void dns_zone_setmaxttl | ( | dns_zone_t * | zone, | |
dns_ttl_t | maxttl | |||
) |
Definition at line 1607 of file zone.c.
References DNS_ZONE_VALID, DNS_ZONEOPT2_CHECKTTL, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
isc_result_t dns_zone_setjournal | ( | dns_zone_t * | zone, | |
const char * | myjournal | |||
) |
Sets the filename used for journaling updates / IXFR transfers. The default journal name is set by dns_zone_setfile() to be "file.jnl". If 'myjournal' is NULL, the zone will have no journal name.
Requires:
Definition at line 1647 of file zone.c.
References dns_zone_setstring(), DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by load_zone(), and ns_zone_configure().
char* dns_zone_getjournal | ( | dns_zone_t * | zone | ) |
Returns the journal name associated with this zone. If no journal has been set this will be NULL.
Requires:
Definition at line 1660 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by ixfr_init(), ns_server_delzone(), ns_xfr_start(), synczone(), update_action(), and zone_journal().
isc_boolean_t dns_zone_isdynamic | ( | dns_zone_t * | zone, | |
isc_boolean_t | ignore_freeze | |||
) |
Load the origin names for a writeable DLZ database.
Definition at line 1676 of file zone.c.
References dns_acl_isnone(), dns_zone_key, dns_zone_master, dns_zone_redirect, dns_zone_slave, dns_zone_stub, DNS_ZONE_VALID, ISC_FALSE, ISC_TRUE, and REQUIRE.
Referenced by check_nsec3param(), freezezones(), ns_server_freeze(), ns_server_zonestatus(), zone_load(), and zone_postload().
isc_result_t dns_zone_rpz_enable | ( | dns_zone_t * | zone, | |
dns_rpz_zones_t * | rpzs, | |||
dns_rpz_num_t | rpz_num | |||
) |
Return the number include files that were encountered during load. If the number is greater than zero, 'includesp' will point to an array containing the filenames.
The array and its contents need to be freed using isc_mem_free.
Definition at line 1699 of file zone.c.
References dns_rpz_zones::defined, dns_rpz_attach_rpzs(), DNS_RPZ_INVALID_NUM, DNS_RPZ_ZBIT, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by configure_zone().
dns_rpz_num_t dns_zone_get_rpz_num | ( | dns_zone_t * | zone | ) |
If a zone is a response policy zone, mark its new database.
Definition at line 1730 of file zone.c.
Referenced by configure_zone().
void dns_zone_rpz_enable_db | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) |
Set the response policy associated with a zone.
Definition at line 1738 of file zone.c.
References dns_db_rpz_attach(), DNS_RPZ_INVALID_NUM, and REQUIRE.
Referenced by axfr_makedb(), and zone_startload().
static isc_boolean_t zone_touched | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 1746 of file zone.c.
References DNS_ZONE_VALID, ISC_FALSE, isc_file_getmodtime(), ISC_LIST_HEAD, ISC_LIST_NEXT, ISC_R_SUCCESS, isc_time_compare(), ISC_TRUE, and REQUIRE.
Referenced by zone_load().
static isc_result_t zone_load | ( | dns_zone_t * | zone, | |
unsigned int | flags, | |||
isc_boolean_t | locked | |||
) | [static] |
Definition at line 1776 of file zone.c.
References cleanup(), dns_dlzdb::configure_callback, dns_dlzdb::dbdata, dns_dlzdb::dlzname, dns_db_create(), dns_db_detach(), dns_db_ispersistent(), dns_db_settask(), dns_dbtype_stub, dns_dbtype_zone, DNS_DLZ_VALID, DNS_R_CONTINUE, DNS_R_DYNAMIC, DNS_R_NOMASTERFILE, DNS_R_UPTODATE, DNS_ZONE_FLAG, dns_zone_isdynamic(), dns_zone_log(), dns_zone_master, dns_zone_none, dns_zone_redirect, DNS_ZONE_SETFLAG, dns_zone_slave, dns_zone_stub, DNS_ZONE_VALID, DNS_ZONEFLG_LOADED, DNS_ZONEFLG_LOADING, DNS_ZONEFLG_THAW, DNS_ZONELOADFLAG_NOSTAT, DNS_ZONELOADFLAG_THAW, dns_dlzimplementation::driverarg, dns_dlzmethods::findzone, dns_dlzdb::implementation, inline_secure(), INSIST, ISC_FALSE, isc_file_exists(), ISC_LIST_HEAD, ISC_LIST_NEXT, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_LOG_INFO, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_result_totext(), isc_rwlocktype_write, isc_time_isepoch(), LOCK_ZONE, dns_dlzdb::mctx, dns_dlzimplementation::methods, now, REQUIRE, TIME_NOW, UNLOCK_ZONE, zone_attachdb(), zone_detachdb(), zone_postload(), zone_settimer(), zone_startload(), zone_touched(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by dns_zone_load(), dns_zone_loadandthaw(), dns_zone_loadnew(), and zone_asyncload().
isc_result_t dns_zone_load | ( | dns_zone_t * | zone | ) |
Definition at line 2011 of file zone.c.
References ISC_FALSE, and zone_load().
Referenced by load(), load_zone(), load_zones(), and ns_server_reloadcommand().
isc_result_t dns_zone_loadnew | ( | dns_zone_t * | zone | ) |
Definition at line 2016 of file zone.c.
References DNS_ZONELOADFLAG_NOSTAT, ISC_FALSE, and zone_load().
Referenced by do_addzone(), do_modzone(), load_new_zones(), and loadnew().
static void zone_asyncload | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 2021 of file zone.c.
References cleanup(), DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, dns_zone_idetach(), DNS_ZONE_VALID, DNS_ZONEFLG_LOADPENDING, isc_event_free(), ISC_EVENTATTR_CANCELED, isc_mem_put, ISC_R_CANCELED, ISC_R_SUCCESS, ISC_TF, ISC_TRUE, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, UNUSED, and zone_load().
Referenced by dns_zone_asyncload().
isc_result_t dns_zone_asyncload | ( | dns_zone_t * | zone, | |
dns_zt_zoneloaded_t | done, | |||
void * | arg | |||
) |
Cause the database to be loaded from its backing store asynchronously. Other zone maintenance functions are suspended until this is complete. When finished, 'done' is called to inform the caller, with 'arg' as its first argument and 'zone' as its second. (Normally, 'arg' is expected to point to the zone table but is left undefined for testing purposes.).
Require:
Definition at line 2062 of file zone.c.
References CHECK, DNS_EVENT_ZONELOAD, DNS_ZONE_FLAG, DNS_ZONE_SETFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_LOADPENDING, isc_event_allocate(), isc_mem_get, isc_mem_put, ISC_R_ALREADYRUNNING, ISC_R_FAILURE, ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_task_send(), LOCK_ZONE, REQUIRE, UNLOCK_ZONE, zone_asyncload(), and zone_iattach().
Referenced by asyncload(), and start_zone_asyncload().
isc_boolean_t dns__zone_loadpending | ( | dns_zone_t * | zone | ) |
Indicates whether the zone is waiting to be loaded asynchronously. (Not currently intended for use outside of this module and associated tests.).
Definition at line 2106 of file zone.c.
References DNS_ZONE_FLAG, DNS_ZONE_VALID, DNS_ZONEFLG_LOADPENDING, ISC_TF, and REQUIRE.
Referenced by ATF_TC_BODY().
isc_result_t dns_zone_loadandthaw | ( | dns_zone_t * | zone | ) |
Cause the database to be loaded from its backing store. Confirm that the minimum requirements for the zone type are met, otherwise DNS_R_BADZONE is returned.
dns_zone_loadnew() only loads zones that are not yet loaded. dns_zone_load() also loads zones that are already loaded and and whose master file has changed since the last load. dns_zone_loadandthaw() is similar to dns_zone_load() but will also re-enable DNS UPDATEs when the load completes.
Require:
Definition at line 2113 of file zone.c.
References DNS_R_CONTINUE, DNS_R_NOMASTERFILE, DNS_R_SEENINCLUDE, DNS_R_UPTODATE, DNS_ZONELOADFLAG_THAW, inline_raw(), ISC_FALSE, ISC_R_SUCCESS, and zone_load().
Referenced by freezezones(), and ns_server_freeze().
static unsigned int get_master_options | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 2142 of file zone.c.
References DNS_MASTER_CHECKMX, DNS_MASTER_CHECKMXFAIL, DNS_MASTER_CHECKNAMES, DNS_MASTER_CHECKNAMESFAIL, DNS_MASTER_CHECKNS, DNS_MASTER_CHECKTTL, DNS_MASTER_CHECKWILDCARD, DNS_MASTER_FATALNS, DNS_MASTER_KEY, DNS_MASTER_RESIGN, DNS_MASTER_SLAVE, DNS_MASTER_ZONE, dns_zone_key, DNS_ZONE_OPTION, DNS_ZONE_OPTION2, dns_zone_redirect, dns_zone_slave, DNS_ZONEOPT2_CHECKTTL, DNS_ZONEOPT_CHECKMX, DNS_ZONEOPT_CHECKMXFAIL, DNS_ZONEOPT_CHECKNAMES, DNS_ZONEOPT_CHECKNAMESFAIL, DNS_ZONEOPT_CHECKNS, DNS_ZONEOPT_CHECKWILDCARD, and DNS_ZONEOPT_FATALNS.
Referenced by zone_gotreadhandle(), and zone_startload().
static void zone_registerinclude | ( | const char * | filename, | |
void * | arg | |||
) | [static] |
Definition at line 2171 of file zone.c.
References DNS_ZONE_VALID, isc_file_getmodtime(), ISC_LINK_INIT, ISC_LIST_APPEND, ISC_LIST_HEAD, ISC_LIST_NEXT, isc_mem_get, isc_mem_put, isc_mem_strdup, ISC_R_SUCCESS, isc_time_settoepoch(), and REQUIRE.
Referenced by zone_gotreadhandle(), and zone_startload().
static void zone_gotreadhandle | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 2208 of file zone.c.
References dns_load::callbacks, dns_load::db, dns_db_origin(), DNS_LOAD_VALID, dns_master_loadfileinc5(), DNS_R_CONTINUE, DNS_R_SEENINCLUDE, get_master_options(), isc_event_free(), ISC_EVENTATTR_CANCELED, ISC_R_CANCELED, ISC_R_SUCCESS, load(), REQUIRE, dns_load::zone, zone_loaddone(), and zone_registerinclude().
Referenced by zone_startload().
static void get_raw_serial | ( | dns_zone_t * | raw, | |
dns_masterrawheader_t * | rawdata | |||
) | [static] |
Definition at line 2244 of file zone.c.
References DNS_MASTERRAW_SOURCESERIALSET, dns_masterrawheader::flags, ISC_R_SUCCESS, LOCK, dns_masterrawheader::sourceserial, UNLOCK, and zone_get_from_db().
Referenced by dumptostream(), zone_dump(), and zone_gotwritehandle().
static void zone_gotwritehandle | ( | isc_task_t * | task, | |
isc_event_t * | event | |||
) | [static] |
Definition at line 2261 of file zone.c.
References dns_db_closeversion(), dns_db_currentversion(), dns_master_dumpinc3(), dns_master_initrawheader(), dns_master_style_default, dns_master_style_keyzone, DNS_R_CONTINUE, dns_zone_key, DNS_ZONE_VALID, dump_done(), ENTER, get_raw_serial(), inline_secure(), INSIST, isc_event_free(), ISC_EVENTATTR_CANCELED, ISC_FALSE, ISC_R_CANCELED, ISC_R_SUCCESS, isc_rwlocktype_read, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, version, ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by zone_dump().
static void zone_setrawdata | ( | dns_zone_t * | zone, | |
dns_masterrawheader_t * | header | |||
) | [static] |
Definition at line 2318 of file zone.c.
References DNS_MASTERRAW_SOURCESERIALSET, dns_masterrawheader::flags, ISC_TRUE, and dns_masterrawheader::sourceserial.
Referenced by dns_zone_setrawdata(), and zone_startload().
void dns_zone_setrawdata | ( | dns_zone_t * | zone, | |
dns_masterrawheader_t * | header | |||
) |
Set the NSEC3 parameters for the zone.
If 'replace' is ISC_TRUE, then the existing NSEC3 chain, if any, will be replaced with the new one. If 'hash' is zero, then the replacement chain will be NSEC rather than NSEC3.
Requires:
Definition at line 2327 of file zone.c.
References LOCK_ZONE, UNLOCK_ZONE, and zone_setrawdata().
Referenced by main().
static isc_boolean_t zone_check_mx | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_name_t * | name, | |||
dns_name_t * | owner | |||
) | [static] |
Definition at line 2418 of file zone.c.
References dns_db_find(), dns_fixedname_init, dns_fixedname_name, dns_name_equal(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_issubdomain(), DNS_R_CNAME, DNS_R_DELEGATION, DNS_R_DNAME, DNS_R_EMPTYNAME, DNS_R_NXDOMAIN, DNS_R_NXRRSET, dns_rootname, dns_zone_log(), dns_zone_master, DNS_ZONE_OPTION, DNS_ZONEOPT_CHECKMXFAIL, DNS_ZONEOPT_IGNOREMXCNAME, DNS_ZONEOPT_WARNMXCNAME, fixed, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_SUCCESS, ISC_TRUE, and namebuf.
Referenced by integrity_checks().
static isc_boolean_t zone_check_srv | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_name_t * | name, | |||
dns_name_t * | owner | |||
) | [static] |
Definition at line 2507 of file zone.c.
References dns_db_find(), dns_fixedname_init, dns_fixedname_name, dns_name_equal(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_issubdomain(), DNS_R_CNAME, DNS_R_DELEGATION, DNS_R_DNAME, DNS_R_EMPTYNAME, DNS_R_NXDOMAIN, DNS_R_NXRRSET, dns_rootname, dns_zone_log(), dns_zone_master, DNS_ZONE_OPTION, DNS_ZONEOPT_IGNORESRVCNAME, DNS_ZONEOPT_WARNSRVCNAME, fixed, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_SUCCESS, ISC_TRUE, and namebuf.
Referenced by integrity_checks().
static isc_boolean_t zone_check_glue | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_name_t * | name, | |||
dns_name_t * | owner | |||
) | [static] |
Definition at line 2595 of file zone.c.
References answer, dns_db_find(), DNS_DBFIND_GLUEOK, dns_fixedname_init, dns_fixedname_name, dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_issubdomain(), DNS_R_CNAME, DNS_R_DELEGATION, DNS_R_DNAME, DNS_R_EMPTYNAME, DNS_R_GLUE, DNS_R_NXDOMAIN, DNS_R_NXRRSET, dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_zone_log(), dns_zone_master, DNS_ZONE_OPTION, DNS_ZONEOPT_CHECKSIBLING, fixed, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_SUCCESS, ISC_TRUE, and namebuf.
Referenced by integrity_checks().
static isc_boolean_t zone_rrset_check_dup | ( | dns_zone_t * | zone, | |
dns_name_t * | owner, | |||
dns_rdataset_t * | rdataset | |||
) | [static] |
Definition at line 2716 of file zone.c.
References answer, dns_name_format(), DNS_NAME_FORMATSIZE, dns_rdata_casecompare(), DNS_RDATA_INIT, dns_rdataset_clone(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_next(), dns_rdatatype_format(), DNS_RDATATYPE_FORMATSIZE, dns_zone_log(), DNS_ZONE_OPTION, DNS_ZONEOPT_CHECKDUPRRFAIL, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_SUCCESS, ISC_TRUE, and dns_rdata::type.
Referenced by zone_check_dup().
static isc_boolean_t zone_check_dup | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [static] |
Definition at line 2774 of file zone.c.
References dns_db_allrdatasets(), dns_db_createiterator(), dns_db_detachnode(), dns_dbiterator_current(), dns_dbiterator_destroy(), dns_dbiterator_first(), dns_dbiterator_next(), dns_fixedname_init, dns_fixedname_name, dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdatasetiter_current(), dns_rdatasetiter_destroy(), dns_rdatasetiter_first(), dns_rdatasetiter_next(), fixed, ISC_FALSE, ISC_R_SUCCESS, ISC_TRUE, and zone_rrset_check_dup().
Referenced by zone_postload().
static isc_boolean_t isspf | ( | const dns_rdata_t * | rdata | ) | [static] |
Definition at line 2823 of file zone.c.
References dns_rdata::data, INSIST, ISC_FALSE, ISC_TRUE, and dns_rdata::length.
Referenced by integrity_checks().
static isc_boolean_t integrity_checks | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [static] |
Definition at line 2851 of file zone.c.
References checkmx(), checksrv(), cleanup(), dns_db_createiterator(), dns_db_detachnode(), dns_db_findrdataset(), dns_dbiterator_current(), dns_dbiterator_destroy(), dns_dbiterator_first(), dns_dbiterator_next(), dns_fixedname_init, dns_fixedname_name, dns_name_copy(), dns_name_countlabels(), dns_name_equal(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_name_issubdomain(), dns_rdata_init(), dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_next(), dns_zone_log(), DNS_ZONE_OPTION, DNS_ZONEOPT_CHECKSPF, fixed, ISC_FALSE, ISC_LOG_WARNING, ISC_R_SUCCESS, ISC_TRUE, isspf(), namebuf, dns_notify::ns, RUNTIME_CHECK, zone_check_glue(), zone_check_mx(), and zone_check_srv().
Referenced by zone_postload().
static void zone_check_dnskeys | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [static] |
Definition at line 3015 of file zone.c.
References cleanup(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detachnode(), dns_db_findnode(), dns_db_findrdataset(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_next(), dns_zone_log(), DST_ALG_RSAMD5, DST_ALG_RSASHA1, INSIST, ISC_FALSE, ISC_LOG_WARNING, ISC_R_SUCCESS, ISC_TRUE, dns_db::origin, and version.
Referenced by zone_postload().
static void resume_signingwithkey | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 3078 of file zone.c.
References cleanup(), dns_rdata::data, dns_db_attach(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detach(), dns_db_detachnode(), dns_db_findnode(), dns_db_findrdataset(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), dns_result_totext(), dns_zone_log(), INSIST, ISC_FALSE, ISC_LOG_ERROR, ISC_R_SUCCESS, isc_rwlocktype_read, ISC_TF, dns_rdata::length, dns_db::origin, version, zone_signwithkey(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by zone_postload().
static isc_result_t zone_addnsec3chain | ( | dns_zone_t * | zone, | |
dns_rdata_nsec3param_t * | nsec3param | |||
) | [static] |
Definition at line 3142 of file zone.c.
References cleanup(), dns_db_attach(), dns_db_closeversion(), dns_db_createiterator(), dns_db_currentversion(), dns_db_detach(), DNS_DB_NONSEC3, dns_dbiterator_destroy(), dns_dbiterator_first(), dns_dbiterator_pause(), dns_nsec_nseconly(), dns_zone_log(), dns_notify::flags, ISC_FALSE, ISC_LIST_HEAD, ISC_LIST_INITANDAPPEND, ISC_LIST_NEXT, ISC_LOG_INFO, isc_mem_get, isc_mem_put, ISC_R_NOMEMORY, ISC_R_SUCCESS, isc_rwlocktype_read, isc_time_isepoch(), ISC_TRUE, now, saltbuf, TIME_NOW, version, zone_settimer(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by dns_zone_addnsec3chain(), and resume_addnsec3chain().
static void resume_addnsec3chain | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 3283 of file zone.c.
References cleanup(), dns_db_attach(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detach(), dns_db_detachnode(), dns_db_findnode(), dns_db_findrdataset(), DNS_NSEC3PARAM_BUFFERSIZE, dns_nsec3param_fromprivate(), dns_nsec_nseconly(), DNS_RDATA_INIT, dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), dns_result_totext(), dns_zone_log(), INSIST, ISC_FALSE, ISC_LOG_ERROR, ISC_R_SUCCESS, isc_rwlocktype_read, dns_db::origin, RUNTIME_CHECK, version, zone_addnsec3chain(), ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by zone_postload().
static void set_resigntime | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 3357 of file zone.c.
References cleanup(), dns_acl_isnone(), dns_db_attach(), dns_db_detach(), dns_db_getsigningtime(), dns_fixedname_init, dns_fixedname_name, dns_rdataset_disassociate(), dns_rdataset_init(), dns_zone_master, fixed, inline_secure(), ISC_R_SUCCESS, isc_random_get(), isc_rwlocktype_read, isc_time_set(), isc_time_settoepoch(), dns_rdataset::resign, ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by dns_zone_markdirty(), dns_zone_setsigresigninginterval(), zone_nsec3chain(), zone_postload(), zone_resigninc(), and zone_sign().
static isc_result_t check_nsec3param | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [static] |
Definition at line 3404 of file zone.c.
References cleanup(), dns_db_closeversion(), dns_db_currentversion(), dns_db_detachnode(), dns_db_findnode(), dns_db_findrdataset(), dns_nsec3_supportedhash(), DNS_NSEC3_UNKNOWNALG, DNS_R_BADZONE, DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), dns_result_totext(), dns_zone_isdynamic(), dns_zone_log(), dns_zone_master, DNS_ZONE_OPTION, DNS_ZONEOPT_NSEC3TESTZONE, INSIST, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, ISC_TRUE, dns_db::origin, and version.
Referenced by zone_postload(), and zone_replacedb().
static void set_refreshkeytimer | ( | dns_zone_t * | zone, | |
dns_rdata_keydata_t * | key, | |||
isc_stdtime_t | now, | |||
isc_boolean_t | force | |||
) | [static] |
Definition at line 3501 of file zone.c.
References dns_zone_log(), DNS_ZONE_TIME_ADD, ENTER, ISC_LOG_DEBUG, isc_time_compare(), isc_time_formattimestamp(), TIME_NOW, and zone_settimer().
Referenced by create_keydata(), keyfetch_done(), load_secroots(), and minimal_update().
static isc_result_t create_keydata | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_dbversion_t * | ver, | |||
dns_diff_t * | diff, | |||
dns_keytable_t * | keytable, | |||
dns_keynode_t ** | keynodep, | |||
isc_boolean_t * | changed | |||
) | [static] |
Definition at line 3537 of file zone.c.
References CHECK, DNS_DIFFOP_ADD, dns_keydata_fromdnskey(), dns_keynode_key(), dns_keytable_detachkeynode(), dns_keytable_nextkeynode(), dns_rdata_fromregion(), dns_rdata_fromstruct(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dst_key_class(), DST_KEY_MAXSIZE, dst_key_name(), dst_key_todns(), ENTER, isc_buffer_init, isc_buffer_usedregion, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_stdtime_get(), ISC_TRUE, dns_notify::key, now, r, dns_rdata::rdclass, REQUIRE, set_refreshkeytimer(), and update_one_rr().
Referenced by sync_keyzone().
static isc_result_t delete_keydata | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
dns_diff_t * | diff, | |||
dns_name_t * | name, | |||
dns_rdataset_t * | rdataset | |||
) | [static] |
Definition at line 3618 of file zone.c.
References DNS_DIFFOP_DEL, DNS_RDATA_INIT, dns_rdata_reset(), dns_rdataset_current(), dns_rdataset_first(), dns_rdataset_next(), ISC_R_NOMORE, ISC_R_SUCCESS, and update_one_rr().
Referenced by sync_keyzone().
static isc_result_t compute_tag | ( | dns_name_t * | name, | |
dns_rdata_dnskey_t * | dnskey, | |||
isc_mem_t * | mctx, | |||
dns_keytag_t * | tag | |||
) | [static] |
Definition at line 3643 of file zone.c.
References buffer, dns_dnssec_keyfromrdata(), dns_rdata_fromstruct(), DNS_RDATA_INIT, dst_key_free(), dst_key_id(), isc_buffer_init, ISC_R_SUCCESS, and dns_rdata::rdclass.
Referenced by keyfetch_done().
static void trust_key | ( | dns_zone_t * | zone, | |
dns_name_t * | keyname, | |||
dns_rdata_dnskey_t * | dnskey, | |||
isc_mem_t * | mctx | |||
) | [static] |
Definition at line 3668 of file zone.c.
References buffer, CHECK, dns_dnssec_keyfromrdata(), dns_keytable_add(), dns_keytable_detach(), dns_rdata_fromstruct(), DNS_RDATA_INIT, dns_view_getsecroots(), dst_key_free(), isc_buffer_init, ISC_R_SUCCESS, ISC_TRUE, and dns_rdata::rdclass.
Referenced by keyfetch_done(), and load_secroots().
static void fail_secure | ( | dns_zone_t * | zone, | |
dns_name_t * | keyname | |||
) | [static] |
Definition at line 3703 of file zone.c.
References dns_keytable_detach(), dns_keytable_marksecure(), dns_view_getsecroots(), and ISC_R_SUCCESS.
Referenced by keyfetch_done(), and load_secroots().
static void load_secroots | ( | dns_zone_t * | zone, | |
dns_name_t * | name, | |||
dns_rdataset_t * | rdataset | |||
) | [static] |
Definition at line 3719 of file zone.c.
References dns_keydata_todnskey(), dns_keytable_delete(), dns_keytable_detach(), dns_name_format(), DNS_NAME_FORMATSIZE, DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_first(), dns_rdataset_next(), dns_view_getsecroots(), dns_zone_log(), fail_secure(), ISC_LOG_ERROR, ISC_R_SUCCESS, ISC_R_UNEXPECTEDEND, isc_stdtime_get(), ISC_TRUE, dns_notify::mctx, namebuf, now, RUNTIME_CHECK, set_refreshkeytimer(), and trust_key().
Referenced by sync_keyzone().
static isc_result_t do_one_tuple | ( | dns_difftuple_t ** | tuple, | |
dns_db_t * | db, | |||
dns_dbversion_t * | ver, | |||
dns_diff_t * | diff | |||
) | [static] |
Definition at line 3791 of file zone.c.
References dns_diff_appendminimal(), dns_diff_apply(), dns_diff_init(), dns_difftuple_free(), ISC_LIST_APPEND, ISC_LIST_UNLINK, ISC_R_SUCCESS, and dns_diff::mctx.
static isc_result_t update_soa_serial | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
dns_diff_t * | diff, | |||
isc_mem_t * | mctx, | |||
dns_updatemethod_t | method | |||
) | [static] |
Definition at line 3839 of file zone.c.
References CHECK, dns_db_createsoatuple(), DNS_DIFFOP_ADD, DNS_DIFFOP_DEL, dns_difftuple_copy(), dns_difftuple_free(), dns_soa_getserial(), dns_soa_setserial(), dns_update_soaserial(), dns_updatemethod_none, do_one_tuple(), INSIST, ISC_R_SUCCESS, dns_difftuple::op, and dns_difftuple::rdata.
Referenced by keydone(), keyfetch_done(), receive_secure_serial(), sync_keyzone(), update_action(), zone_nsec3chain(), zone_refreshkeys(), zone_resigninc(), and zone_sign().
static isc_result_t zone_journal | ( | dns_zone_t * | zone, | |
dns_diff_t * | diff, | |||
isc_uint32_t * | sourceserial, | |||
const char * | caller | |||
) | [static] |
Definition at line 3871 of file zone.c.
References DNS_JOURNAL_CREATE, dns_journal_destroy(), dns_journal_open(), dns_journal_set_sourceserial(), DNS_JOURNAL_WRITE, dns_journal_write_transaction(), dns_result_totext(), dns_zone_getjournal(), dns_zone_log(), ENTER, ISC_LOG_ERROR, ISC_R_SUCCESS, and journal.
Referenced by keydone(), keyfetch_done(), receive_secure_serial(), sync_keyzone(), zone_nsec3chain(), zone_refreshkeys(), zone_resigninc(), and zone_sign().
static isc_result_t add_soa | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [static] |
Definition at line 3911 of file zone.c.
References dns_db_closeversion(), dns_db_newversion(), dns_diff_clear(), dns_diff_init(), DNS_DIFFOP_ADD, DNS_RDATA_INIT, dns_result_totext(), dns_rootname, DNS_SOA_BUFFERSIZE, dns_soa_buildrdata(), dns_zone_log(), INSIST, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_R_SUCCESS, ISC_TF, and update_one_rr().
Referenced by create_empty_zone(), and zone_postload().
static isc_result_t sync_keyzone | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) | [static] |
Definition at line 3961 of file zone.c.
References CHECK, commit(), create_keydata(), dns_rbtnode::data, delete_keydata(), dns_db_closeversion(), dns_db_find(), dns_db_newversion(), DNS_DBFIND_NOWILD, dns_diff_clear(), dns_diff_init(), dns_fixedname_init, dns_fixedname_name, dns_keynode_key(), dns_keynode_managed(), dns_keytable_attachkeynode(), dns_keytable_detach(), dns_keytable_detachkeynode(), dns_keytable_find(), dns_name_init(), DNS_R_NEWORIGIN, DNS_R_PARTIALMATCH, dns_rbtnodechain_current(), dns_rbtnodechain_first(), dns_rbtnodechain_init(), dns_rbtnodechain_next(), dns_rdataset_isassociated(), dns_result_totext(), dns_rriterator_current(), dns_rriterator_destroy(), dns_rriterator_first(), dns_rriterator_init(), dns_rriterator_nextrrset(), dns_view_getsecroots(), DNS_ZONE_FLAG, dns_zone_log(), DNS_ZONE_SETFLAG, DNS_ZONEFLG_LOADED, dst_key_name(), INSIST, ISC_FALSE, ISC_LOG_DEBUG, ISC_LOG_ERROR, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_rwlocktype_write, isc_time_settoepoch(), ISC_TRUE, dns_notify::key, load_secroots(), dns_diff::mctx, dns_rbtnodechain::mctx, origin, dns_keytable::rwlock, RWLOCK, RWUNLOCK, dns_keytable::table, dns_rdataset::type, update_soa_serial(), zone_journal(), and zone_needdump().
Referenced by dns_zone_synckeyzone(), and zone_postload().
isc_result_t dns_zone_synckeyzone | ( | dns_zone_t * | zone | ) |
Set the data to be included in the header when the zone is dumped in binary format.
Definition at line 4118 of file zone.c.
References CHECK, dns_db_detach(), DNS_R_BADZONE, dns_zone_getdb(), dns_zone_key, LOCK_ZONE, sync_keyzone(), and UNLOCK_ZONE.
Referenced by add_keydata_zone(), and mkey_refresh().
static void maybe_send_secure | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 4138 of file zone.c.
References DNS_ZONE_SETFLAG, DNS_ZONEFLG_SENDSECURE, ISC_R_SUCCESS, zone_get_from_db(), zone_send_securedb(), and zone_send_secureserial().
Referenced by zone_postload().
static isc_boolean_t zone_unchanged | ( | dns_db_t * | db1, | |
dns_db_t * | db2, | |||
isc_mem_t * | mctx | |||
) | [static] |
Definition at line 4168 of file zone.c.
References answer, dns_db_diffx(), dns_diff_clear(), dns_diff_init(), ISC_FALSE, ISC_LIST_EMPTY, ISC_R_SUCCESS, and ISC_TRUE.
Referenced by zone_postload().
static isc_boolean_t exit_check | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 4690 of file zone.c.
References DNS_ZONE_FLAG, DNS_ZONEFLG_SHUTDOWN, INSIST, ISC_FALSE, isc_refcount_current, ISC_TRUE, LOCKED_ZONE, and REQUIRE.
static isc_boolean_t zone_check_ns | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_dbversion_t * | version, | |||
dns_name_t * | name, | |||
isc_boolean_t | logit | |||
) | [static] |
Definition at line 4704 of file zone.c.
References dns_db_find(), dns_fixedname_init, dns_fixedname_name, dns_name_format(), DNS_NAME_FORMATSIZE, DNS_R_CNAME, DNS_R_DNAME, DNS_R_EMPTYNAME, DNS_R_NXDOMAIN, DNS_R_NXRRSET, dns_zone_log(), dns_zone_master, DNS_ZONE_OPTION, DNS_ZONEOPT_NOCHECKNS, fixed, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_SUCCESS, ISC_TRUE, and namebuf.
Referenced by zone_count_ns_rr().
static isc_result_t zone_count_ns_rr | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_dbnode_t * | node, | |||
dns_dbversion_t * | version, | |||
unsigned int * | nscount, | |||
unsigned int * | errors, | |||
isc_boolean_t | logit | |||
) | [static] |
Definition at line 4770 of file zone.c.
References dns_db_findrdataset(), dns_name_issubdomain(), dns_rdata_init(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_invalidate(), dns_rdataset_isassociated(), dns_rdataset_next(), dns_zone_master, dns_zone_slave, INSIST, ISC_R_NOTFOUND, ISC_R_SUCCESS, dns_notify::ns, RUNTIME_CHECK, and zone_check_ns().
Referenced by zone_get_from_db().
static isc_result_t zone_load_soa_rr | ( | dns_db_t * | db, | |
dns_dbnode_t * | node, | |||
dns_dbversion_t * | version, | |||
unsigned int * | soacount, | |||
isc_uint32_t * | serial, | |||
isc_uint32_t * | refresh, | |||
isc_uint32_t * | retry, | |||
isc_uint32_t * | expire, | |||
isc_uint32_t * | minimum | |||
) | [static] |
Definition at line 4826 of file zone.c.
References dns_db_findrdataset(), dns_rdata_init(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_invalidate(), dns_rdataset_isassociated(), dns_rdataset_next(), INSIST, ISC_R_NOTFOUND, ISC_R_SUCCESS, and RUNTIME_CHECK.
Referenced by zone_get_from_db().
void dns_zone_attach | ( | dns_zone_t * | source, | |
dns_zone_t ** | target | |||
) |
Attach '*target' to 'source' incrementing its external reference count.
Require:
Definition at line 4982 of file zone.c.
References DNS_ZONE_VALID, isc_refcount_increment, and REQUIRE.
Referenced by add_keydata_zone(), add_zone_tolist(), configure_zone(), dns_acache_getentry(), dns_acache_setentry(), dns_viewlist_findzone(), dns_zt_find(), dns_zt_mount(), ns_server_freeze(), ns_server_refreshcommand(), ns_server_retransfercommand(), ns_update_start(), query_find(), receive_secure_serial(), and xfrout_ctx_create().
void dns_zone_detach | ( | dns_zone_t ** | zonep | ) |
Detach from a zone decrementing its external reference count. If this was the last external reference to the zone it will be shut down and eventually freed.
Require:
Definition at line 4990 of file zone.c.
References dns_zone_detach(), dns_zone_idetach(), DNS_ZONE_VALID, free_now, INSIST, ISC_FALSE, isc_refcount_decrement, isc_task_send(), ISC_TRUE, LOCK_ZONE, REQUIRE, secure(), UNLOCK_ZONE, and zone_free().
Referenced by add_keydata_zone(), ATF_TC_BODY(), auto_detach(), clear_entry(), configure_view(), configure_zone(), create_empty_zone(), destroy(), dns64_reverse(), dns_acache_getentry(), dns_dlz_writeablezone(), dns_test_makezone(), dns_view_find2(), dns_view_findzone(), dns_view_findzonecut2(), dns_viewlist_findzone(), dns_zone_detach(), do_addzone(), do_modzone(), dumpcontext_destroy(), forward_action(), forward_callback(), freezezones(), load_zone(), ns_notify_start(), ns_server_delzone(), ns_server_freeze(), ns_server_notifycommand(), ns_server_refreshcommand(), ns_server_rekey(), ns_server_reloadcommand(), ns_server_retransfercommand(), ns_server_showzone(), ns_server_signing(), ns_server_sync(), ns_server_zonestatus(), ns_update_start(), ns_xfr_start(), ns_zone_reusable(), query_addadditional(), query_addadditional2(), query_addbestns(), query_discardcache(), query_find(), query_getdb(), query_getzonedb(), query_reset(), receive_secure_serial(), rpz_clean(), rpz_rrset_find(), synczone(), updatedone_action(), view_flushanddetach(), xfrout_ctx_destroy(), zone_from_args(), and zone_shutdown().
void dns_zone_iattach | ( | dns_zone_t * | source, | |
dns_zone_t ** | target | |||
) |
Attach '*target' to 'source' incrementing its internal reference count. This is intended for use by operations such as zone transfers that need to prevent the zone object from being freed but not from shutting down.
Require:
Definition at line 5050 of file zone.c.
References DNS_ZONE_VALID, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, and zone_iattach().
Referenced by dns_zone_forwardupdate(), xfrin_create(), and zone_notify().
void dns_zone_idetach | ( | dns_zone_t ** | zonep | ) |
Detach from a zone decrementing its internal reference count. If there are no more internal or external references to the zone, it will be freed.
Require:
Definition at line 5091 of file zone.c.
References DNS_ZONE_VALID, exit_check(), INSIST, LOCK_ZONE, REQUIRE, UNLOCK_ZONE, and zone_free().
Referenced by dns_zone_detach(), dump_done(), forward_destroy(), keydone(), maybe_free(), notify_destroy(), receive_secure_db(), receive_secure_serial(), refresh_callback(), soa_query(), stub_callback(), xfrin_create(), zone_asyncload(), zone_loaddone(), and zone_shutdown().
isc_mem_t* dns_zone_getmctx | ( | dns_zone_t * | zone | ) |
Get the memory context of a zone.
Requires:
Definition at line 5109 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by configure_staticstub(), configure_staticstub_serveraddrs(), configure_staticstub_servernames(), configure_zone_acl(), configure_zone_ssutable(), ns_server_zonestatus(), and ns_zone_configure().
dns_zonemgr_t* dns_zone_getmgr | ( | dns_zone_t * | zone | ) |
If 'zone' is managed return the zone manager otherwise NULL.
Requires:
Definition at line 5116 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by xfrin_connect_done().
void dns_zone_setflag | ( | dns_zone_t * | zone, | |
unsigned int | flags, | |||
isc_boolean_t | value | |||
) |
Sets ('value' == 'ISC_TRUE') / clears ('value' == 'IS_FALSE') zone flags. Valid flag bits are DNS_ZONE_F_*.
Requires
Definition at line 5123 of file zone.c.
References DNS_ZONE_CLRFLAG, DNS_ZONE_SETFLAG, DNS_ZONE_VALID, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
void dns_zone_setoption | ( | dns_zone_t * | zone, | |
unsigned int | option, | |||
isc_boolean_t | value | |||
) |
Definition at line 5135 of file zone.c.
References DNS_ZONE_VALID, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by add_keydata_zone(), create_empty_zone(), dns64_reverse(), load_zone(), and ns_zone_configure().
void dns_zone_setoption2 | ( | dns_zone_t * | zone, | |
unsigned int | option, | |||
isc_boolean_t | value | |||
) |
Set the given options on ('value' == ISC_TRUE) or off ('value' == ISC_FALSE).
dns_zone_setoption2() has been introduced because the number of options needed now exceeds the 32 bits in the zone->options field; it should be used set options with names beginning with DNS_ZONEOPT2_.
Require:
Definition at line 5149 of file zone.c.
References DNS_ZONE_VALID, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by load_zone().
unsigned int dns_zone_getoptions | ( | dns_zone_t * | zone | ) |
Definition at line 5163 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by check_mx(), dns_update_signaturesinc(), and update_action().
unsigned int dns_zone_getoptions2 | ( | dns_zone_t * | zone | ) |
Returns the current zone options.
Callers should be aware there is now more than one set of zone options. dns_zone_getoptions2() has been introduced because the number of options needed now exceeds the 32 bits in the zone->options field. It returns the options whose names begin with DNS_ZONEOPT2_.
Require:
Definition at line 5170 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by update_action().
void dns_zone_setkeyopt | ( | dns_zone_t * | zone, | |
unsigned int | option, | |||
isc_boolean_t | value | |||
) |
Set key options on ('value' == ISC_TRUE) or off ('value' == ISC_FALSE).
Require:
Definition at line 5177 of file zone.c.
References DNS_ZONE_VALID, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
unsigned int dns_zone_getkeyopts | ( | dns_zone_t * | zone | ) |
Returns the current zone key options.
Require:
Definition at line 5190 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by configure_zone(), ns_server_rekey(), and ns_server_zonestatus().
isc_result_t dns_zone_setxfrsource4 | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | xfrsource | |||
) |
Definition at line 5198 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_sockaddr_t* dns_zone_getxfrsource4 | ( | dns_zone_t * | zone | ) |
Definition at line 5209 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by dns_xfrin_create().
isc_result_t dns_zone_setxfrsource4dscp | ( | dns_zone_t * | zone, | |
isc_dscp_t | dscp | |||
) |
Definition at line 5215 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_dscp_t dns_zone_getxfrsource4dscp | ( | dns_zone_t * | zone | ) |
Definition at line 5226 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by dns_xfrin_create().
isc_result_t dns_zone_setxfrsource6 | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | xfrsource | |||
) |
/ Get the DSCP value associated with the transfer/alt-transfer source.
Require:
Definition at line 5232 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_sockaddr_t* dns_zone_getxfrsource6 | ( | dns_zone_t * | zone | ) |
Definition at line 5243 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by adjust_interfaces(), and dns_xfrin_create().
isc_dscp_t dns_zone_getxfrsource6dscp | ( | dns_zone_t * | zone | ) |
Definition at line 5249 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by adjust_interfaces(), and dns_xfrin_create().
isc_result_t dns_zone_setxfrsource6dscp | ( | dns_zone_t * | zone, | |
isc_dscp_t | dscp | |||
) |
/ Get the DSCP value associated with the transfer/alt-transfer source.
Require:
Definition at line 5255 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_result_t dns_zone_setaltxfrsource4 | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | xfrsource | |||
) |
Set the source address to be used in IPv4 zone transfers.
Require:
Definition at line 5266 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_sockaddr_t* dns_zone_getaltxfrsource4 | ( | dns_zone_t * | zone | ) |
Returns the source address set by a previous dns_zone_setxfrsource4 call, or the default of inaddr_any, port 0.
Require:
Definition at line 5279 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
isc_result_t dns_zone_setaltxfrsource4dscp | ( | dns_zone_t * | zone, | |
isc_dscp_t | dscp | |||
) |
Set the DSCP value associated with the transfer/alt-transfer source.
Require:
Definition at line 5285 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_dscp_t dns_zone_getaltxfrsource4dscp | ( | dns_zone_t * | zone | ) |
isc_result_t dns_zone_setaltxfrsource6 | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | xfrsource | |||
) |
Set the source address to be used in IPv6 zone transfers.
Require:
Definition at line 5302 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_sockaddr_t* dns_zone_getaltxfrsource6 | ( | dns_zone_t * | zone | ) |
Returns the source address set by a previous dns_zone_setxfrsource6 call, or the default of in6addr_any, port 0.
Require:
Definition at line 5315 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
isc_result_t dns_zone_setaltxfrsource6dscp | ( | dns_zone_t * | zone, | |
isc_dscp_t | dscp | |||
) |
Set the DSCP value associated with the transfer/alt-transfer source.
Require:
Definition at line 5321 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_dscp_t dns_zone_getaltxfrsource6dscp | ( | dns_zone_t * | zone | ) |
isc_result_t dns_zone_setnotifysrc4 | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | notifysrc | |||
) |
Set the source address to be used with IPv4 NOTIFY messages.
Require:
Definition at line 5338 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_sockaddr_t* dns_zone_getnotifysrc4 | ( | dns_zone_t * | zone | ) |
Returns the source address set by a previous dns_zone_setnotifysrc4 call, or the default of inaddr_any, port 0.
Require:
Definition at line 5349 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
isc_result_t dns_zone_setnotifysrc4dscp | ( | dns_zone_t * | zone, | |
isc_dscp_t | dscp | |||
) |
/ Get the DCSP value associated with the notify source.
Require:
Definition at line 5355 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_dscp_t dns_zone_getnotifysrc4dscp | ( | dns_zone_t * | zone | ) |
isc_result_t dns_zone_setnotifysrc6 | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | notifysrc | |||
) |
/ Get the DSCP value associated with the notify source.
Require:
Definition at line 5372 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_sockaddr_t* dns_zone_getnotifysrc6 | ( | dns_zone_t * | zone | ) |
Returns the source address set by a previous dns_zone_setnotifysrc6 call, or the default of in6addr_any, port 0.
Require:
Definition at line 5383 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by adjust_interfaces().
static isc_boolean_t same_addrs | ( | const isc_sockaddr_t * | old, | |
const isc_sockaddr_t * | new, | |||
isc_uint32_t | count | |||
) | [static] |
Definition at line 5389 of file zone.c.
References ISC_FALSE, isc_sockaddr_equal(), and ISC_TRUE.
Referenced by dns_zone_setalsonotifydscpkeys(), and dns_zone_setmasterswithkeys().
static isc_boolean_t same_keynames | ( | dns_name_t ** | old, | |
dns_name_t ** | new, | |||
isc_uint32_t | count | |||
) | [static] |
Definition at line 5401 of file zone.c.
References dns_name_equal(), ISC_FALSE, and ISC_TRUE.
Referenced by dns_zone_setalsonotifydscpkeys(), and dns_zone_setmasterswithkeys().
static void clear_addresskeylist | ( | isc_sockaddr_t ** | addrsp, | |
isc_dscp_t ** | dscpsp, | |||
dns_name_t *** | keynamesp, | |||
unsigned int * | countp, | |||
isc_mem_t * | mctx | |||
) | [static] |
Definition at line 5420 of file zone.c.
References dns_name_free(), isc_mem_put, and REQUIRE.
Referenced by dns_zone_setalsonotifydscpkeys(), and dns_zone_setmasterswithkeys().
static isc_result_t set_addrkeylist | ( | unsigned int | count, | |
const isc_sockaddr_t * | addrs, | |||
isc_sockaddr_t ** | newaddrsp, | |||
const isc_dscp_t * | dscp, | |||
isc_dscp_t ** | newdscpp, | |||
dns_name_t ** | names, | |||
dns_name_t *** | newnamesp, | |||
isc_mem_t * | mctx | |||
) | [static] |
Definition at line 5462 of file zone.c.
References dns_name_dup(), dns_name_free(), dns_name_init(), isc_mem_get, isc_mem_put, ISC_R_NOMEMORY, ISC_R_SUCCESS, and REQUIRE.
Referenced by dns_zone_setalsonotifydscpkeys(), and dns_zone_setmasterswithkeys().
isc_result_t dns_zone_setnotifysrc6dscp | ( | dns_zone_t * | zone, | |
isc_dscp_t | dscp | |||
) |
/ Get the DCSP value associated with the notify source.
Require:
Definition at line 5540 of file zone.c.
References DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, and UNLOCK_ZONE.
Referenced by ns_zone_configure().
isc_dscp_t dns_zone_getnotifysrc6dscp | ( | dns_zone_t * | zone | ) |
Definition at line 5551 of file zone.c.
References DNS_ZONE_VALID, and REQUIRE.
Referenced by adjust_interfaces().
isc_result_t dns_zone_setalsonotify | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | notify, | |||
isc_uint32_t | count | |||
) |
Definition at line 5557 of file zone.c.
References dns_zone_setalsonotifydscpkeys().
Referenced by ns_zone_configure(), and zone_free().
isc_result_t dns_zone_setalsonotifywithkeys | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | notify, | |||
dns_name_t ** | keynames, | |||
isc_uint32_t | count | |||
) |
isc_result_t dns_zone_setalsonotifydscpkeys | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | notify, | |||
const isc_dscp_t * | dscps, | |||
dns_name_t ** | keynames, | |||
isc_uint32_t | count | |||
) |
Set the list of additional servers to be notified when a zone changes. To clear the list use 'count = 0'.
dns_zone_alsonotifywithkeys() allows each notify address to be associated with a TSIG key.
Require:
Definition at line 5573 of file zone.c.
References clear_addresskeylist(), DNS_ZONE_VALID, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, same_addrs(), same_keynames(), set_addrkeylist(), and UNLOCK_ZONE.
Referenced by dns_zone_setalsonotify(), dns_zone_setalsonotifywithkeys(), and ns_zone_configure().
isc_result_t dns_zone_setmasters | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | masters, | |||
isc_uint32_t | count | |||
) |
Definition at line 5622 of file zone.c.
References dns_zone_setmasterswithkeys().
Referenced by ns_zone_configure().
isc_result_t dns_zone_setmasterswithkeys | ( | dns_zone_t * | zone, | |
const isc_sockaddr_t * | masters, | |||
dns_name_t ** | keynames, | |||
isc_uint32_t | count | |||
) |
Set the list of master servers for the zone.
Require:
Definition at line 5632 of file zone.c.
References clear_addresskeylist(), dns_request_cancel(), DNS_ZONE_CLRFLAG, DNS_ZONE_VALID, DNS_ZONEFLG_NOMASTERS, INSIST, ISC_FALSE, isc_mem_get, isc_mem_put, ISC_R_NOMEMORY, ISC_R_SUCCESS, LOCK_ZONE, REQUIRE, same_addrs(), same_keynames(), set_addrkeylist(), and UNLOCK_ZONE.
Referenced by dns_zone_setmasters(), ns_zone_configure(), and zone_free().
isc_result_t dns_zone_getdb | ( | dns_zone_t * | zone, | |
dns_db_t ** | dbp | |||
) |
Attach '*dbp' to the database to if it exists otherwise return DNS_R_NOTLOADED.
Require:
Definition at line 5724 of file zone.c.
References dns_db_attach(), DNS_R_NOTLOADED, DNS_ZONE_VALID, ISC_R_SUCCESS, isc_rwlocktype_read, REQUIRE, ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by ATF_TC_BODY(), check_ttls(), dns_view_find2(), dns_view_findzonecut2(), dns_xfrin_create3(), dns_zone_synckeyzone(), do_addzone(), do_modzone(), dumpdone(), mkey_dumpzone(), ns_server_delzone(), ns_server_signing(), ns_server_zonestatus(), ns_xfr_start(), query_getzonedb(), query_iscachevalid(), redirect(), and update_action().
void dns_zone_setdb | ( | dns_zone_t * | zone, | |
dns_db_t * | db | |||
) |
Sets the zone database to 'db'.
This function is expected to be used to configure a zone with a database which is not loaded from a file or zone transfer. It can be used for a general purpose zone, but right now its use is limited to static-stub zones to avoid possible undiscovered problems in the general cases.
Require:
Definition at line 5740 of file zone.c.
References dns_db_attach(), dns_zone_staticstub, DNS_ZONE_VALID, isc_rwlocktype_write, REQUIRE, ZONEDB_LOCK, and ZONEDB_UNLOCK.
Referenced by configure_staticstub().
void dns_zone_maintenance | ( | dns_zone_t * | zone | ) |
Perform regular maintenance on the zone. This is called as a result of a zone being managed.
Require
Definition at line 5755 of file zone.c.
References DNS_ZONE_VALID, ENTER, LOCK_ZONE, now, REQUIRE, TIME_NOW, UNLOCK_ZONE, and zone_settimer().
Referenced by dns_zonemgr_forcemaint().
static isc_boolean_t was_dumping | ( | dns_zone_t * | zone | ) | [inline, static] |
Definition at line 5769 of file zone.c.
References DNS_ZONE_CLRFLAG, DNS_ZONE_FLAG, DNS_ZONE_SETFLAG, DNS_ZONEFLG_DUMPING, DNS_ZONEFLG_NEEDDUMP, isc_time_settoepoch(), LOCKED_ZONE, and REQUIRE.
Referenced by dns_zone_dump(), dns_zone_flush(), and zone_maintenance().
static isc_result_t find_zone_keys | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_dbversion_t * | ver, | |||
isc_mem_t * | mctx, | |||
unsigned int | maxkeys, | |||
dst_key_t ** | keys, | |||
unsigned int * | nkeys | |||
) | [static] |
Definition at line 5784 of file zone.c.
References CHECK, directory, dns_db_detachnode(), dns_db_findnode(), dns_db_origin(), dns_dnssec_findzonekeys2(), dns_zone_getkeydirectory(), ISC_FALSE, ISC_R_NOTFOUND, and ISC_R_SUCCESS.
static isc_result_t offline | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
zonediff_t * | zonediff, | |||
dns_name_t * | name, | |||
dns_ttl_t | ttl, | |||
dns_rdata_t * | rdata | |||
) | [static] |
Definition at line 5806 of file zone.c.
References zonediff_t::diff, DNS_DIFFOP_ADDRESIGN, DNS_DIFFOP_DELRESIGN, DNS_RDATA_OFFLINE, dns_rdata::flags, ISC_R_SUCCESS, ISC_TRUE, zonediff_t::offline, and update_one_rr().
Referenced by del_sigs(), and rdata_from_slab().
static void set_key_expiry_warning | ( | dns_zone_t * | zone, | |
isc_stdtime_t | when, | |||
isc_stdtime_t | now | |||
) | [static] |
Definition at line 5825 of file zone.c.
References dns_zone_log(), ISC_LOG_ERROR, ISC_LOG_NOTICE, ISC_LOG_WARNING, isc_time_formattimestamp(), isc_time_set(), and isc_time_settoepoch().
Referenced by del_sigs(), and zone_maintenance().
static isc_boolean_t delsig_ok | ( | dns_rdata_rrsig_t * | rrsig_ptr, | |
dst_key_t ** | keys, | |||
unsigned int | nkeys, | |||
isc_boolean_t * | warn | |||
) | [static] |
Definition at line 5860 of file zone.c.
References dst_key_alg(), dst_key_id(), dst_key_isprivate(), ISC_FALSE, ISC_TRUE, and KSK.
Referenced by del_sigs().
static isc_result_t del_sigs | ( | dns_zone_t * | zone, | |
dns_db_t * | db, | |||
dns_dbversion_t * | ver, | |||
dns_name_t * | name, | |||
dns_rdatatype_t | type, | |||
zonediff_t * | zonediff, | |||
dst_key_t ** | keys, | |||
unsigned int | nkeys, | |||
isc_stdtime_t | now, | |||
isc_boolean_t | incremental | |||
) | [static] |
Definition at line 5914 of file zone.c.
References delsig_ok(), zonediff_t::diff, dns_db_detachnode(), dns_db_findnode(), dns_db_findnsec3node(), dns_db_findrdataset(), DNS_DIFFOP_DELRESIGN, dns_name_format(), DNS_NAME_FORMATSIZE, DNS_RDATA_INIT, DNS_RDATA_OFFLINE, dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), dns_secalg_format(), dns_time64_from32(), dns_zone_log(), dst_key_alg(), dst_key_id(), dst_key_inactive(), dst_key_isprivate(), dns_rdata::flags, INSIST, ISC_FALSE, ISC_LOG_ERROR, ISC_LOG_WARNING, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, ISC_TRUE, offline(), origin, RUNTIME_CHECK, set_key_expiry_warning(), dns_rdataset::ttl, and update_one_rr().
Referenced by update_sigs(), zone_nsec3chain(), zone_resigninc(), and zone_sign().
static isc_result_t add_sigs | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
dns_name_t * | name, | |||
dns_rdatatype_t | type, | |||
dns_diff_t * | diff, | |||
dst_key_t ** | keys, | |||
unsigned int | nkeys, | |||
isc_mem_t * | mctx, | |||
isc_stdtime_t | inception, | |||
isc_stdtime_t | expire, | |||
isc_boolean_t | check_ksk, | |||
isc_boolean_t | keyset_kskonly | |||
) | [static] |
Definition at line 6092 of file zone.c.
References ALG, buffer, CHECK, dns_db_detachnode(), dns_db_findnode(), dns_db_findnsec3node(), dns_db_findrdataset(), DNS_DIFFOP_ADDRESIGN, dns_dnssec_sign(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdataset_isassociated(), dst_key_isprivate(), INSIST, isc_buffer_clear, isc_buffer_init, ISC_FALSE, ISC_R_NOTFOUND, ISC_R_SUCCESS, ISC_TRUE, KSK, REVOKE, dns_rdataset::ttl, and update_one_rr().
static void zone_resigninc | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 6189 of file zone.c.
References add_sigs(), CHECK, dns_rdataset::covers, del_sigs(), zonediff_t::diff, dns_db_attach(), dns_db_closeversion(), dns_db_detach(), dns_db_getsigningtime(), dns_db_newversion(), dns_diff_clear(), dns_diff_init(), DNS_DUMP_DELAY, dns_fixedname_init, dns_fixedname_name, DNS_MAXZONEKEYS, dns_rdataset_disassociate(), dns_rdataset_init(), dns_result_totext(), dns_zone_getsigvalidityinterval(), dns_zone_log(), DNS_ZONE_OPTION, DNS_ZONE_SETFLAG, DNS_ZONEFLG_NEEDNOTIFY, DNS_ZONEKEY_NORESIGN, DNS_ZONEKEY_OPTION, DNS_ZONEOPT_DNSKEYKSKONLY, DNS_ZONEOPT_UPDATECHECKKSK, dst_key_free(), ENTER, find_zone_keys(), fixed, INSIST, ISC_FALSE, isc_interval_set(), ISC_LIST_EMPTY, ISC_LOG_ERROR, ISC_R_FAILURE, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_random_get(), isc_rwlocktype_read, isc_stdtime_get(), isc_time_nowplusinterval(), ISC_TRUE, jitter, keyset_kskonly, LOCK_ZONE, dns_diff::mctx, dns_db::mctx, now, zonediff_t::offline, dns_db::origin, dns_rdataset::resign, set_resigntime(), UNLOCK_ZONE, update_soa_serial(), version, zone_journal(), zone_needdump(), ZONEDB_LOCK, ZONEDB_UNLOCK, and zonediff_init.
Referenced by zone_maintenance().
static isc_result_t next_active | ( | dns_db_t * | db, | |
dns_dbversion_t * | version, | |||
dns_name_t * | oldname, | |||
dns_name_t * | newname, | |||
isc_boolean_t | bottom | |||
) | [static] |
Definition at line 6396 of file zone.c.
References CHECK, dns_db_allrdatasets(), dns_db_createiterator(), dns_db_detachnode(), DNS_DB_NONSEC3, dns_dbiterator_current(), dns_dbiterator_destroy(), dns_dbiterator_first(), dns_dbiterator_next(), dns_dbiterator_seek(), dns_name_equal(), dns_name_issubdomain(), dns_rdatasetiter_destroy(), dns_rdatasetiter_first(), and ISC_R_NOMORE.
static isc_boolean_t signed_with_key | ( | dns_db_t * | db, | |
dns_dbnode_t * | node, | |||
dns_dbversion_t * | version, | |||
dns_rdatatype_t | type, | |||
dst_key_t * | key | |||
) | [static] |
Definition at line 6435 of file zone.c.
References dns_db_findrdataset(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), dst_key_alg(), dst_key_id(), INSIST, ISC_FALSE, ISC_R_SUCCESS, and ISC_TRUE.
Referenced by sign_a_node().
static isc_result_t add_nsec | ( | dns_db_t * | db, | |
dns_dbversion_t * | version, | |||
dns_name_t * | name, | |||
dns_dbnode_t * | node, | |||
dns_ttl_t | ttl, | |||
isc_boolean_t | bottom, | |||
dns_diff_t * | diff | |||
) | [static] |
Definition at line 6468 of file zone.c.
References CHECK, DNS_DIFFOP_ADD, dns_fixedname_init, dns_fixedname_name, DNS_NSEC_BUFFERSIZE, dns_nsec_buildrdata(), DNS_RDATA_INIT, fixed, next_active(), and update_one_rr().
static isc_result_t sign_a_node | ( | dns_db_t * | db, | |
dns_name_t * | name, | |||
dns_dbnode_t * | node, | |||
dns_dbversion_t * | version, | |||
isc_boolean_t | build_nsec3, | |||
isc_boolean_t | build_nsec, | |||
dst_key_t * | key, | |||
isc_stdtime_t | inception, | |||
isc_stdtime_t | expire, | |||
unsigned int | minimum, | |||
isc_boolean_t | is_ksk, | |||
isc_boolean_t | keyset_kskonly, | |||
isc_boolean_t * | delegation, | |||
dns_diff_t * | diff, | |||
isc_int32_t * | signatures, | |||
isc_mem_t * | mctx | |||
) | [static] |
Definition at line 6491 of file zone.c.
References add_nsec(), buffer, CHECK, dns_db_allrdatasets(), dns_db_origin(), DNS_DIFFOP_ADDRESIGN, dns_dnssec_sign(), dns_name_equal(), dns_nsec3_addnsec3s(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdatasetiter_current(), dns_rdatasetiter_destroy(), dns_rdatasetiter_first(), dns_rdatasetiter_next(), isc_buffer_clear, isc_buffer_init, ISC_FALSE, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, ISC_TRUE, signed_with_key(), dns_rdataset::ttl, dns_rdataset::type, and update_one_rr().
Referenced by zone_sign().
static isc_result_t updatesecure | ( | dns_db_t * | db, | |
dns_dbversion_t * | version, | |||
dns_name_t * | name, | |||
dns_ttl_t | minimum, | |||
isc_boolean_t | update_only, | |||
dns_diff_t * | diff | |||
) | [static] |
Definition at line 6618 of file zone.c.
References add_nsec(), CHECK, delete_nsec(), dns_db_detachnode(), dns_db_findrdataset(), dns_db_getoriginnode(), dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdataset_isassociated(), ISC_FALSE, ISC_R_NOTFOUND, and ISC_R_SUCCESS.
Referenced by updatesignwithkey(), zone_nsec3chain(), and zone_sign().
static isc_result_t updatesignwithkey | ( | dns_zone_t * | zone, | |
dns_signing_t * | signing, | |||
dns_dbversion_t * | version, | |||
isc_boolean_t | build_nsec3, | |||
dns_ttl_t | minimum, | |||
dns_diff_t * | diff | |||
) | [static] |
Definition at line 6650 of file zone.c.
References CHECK, dns_rdata::data, dns_db_class(), dns_db_detachnode(), dns_db_findrdataset(), dns_db_getoriginnode(), dns_db_origin(), DNS_DIFFOP_ADD, DNS_DIFFOP_DEL, dns_nsec3_addnsec3s(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), INSIST, ISC_FALSE, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, ISC_TRUE, dns_rdata::length, origin, dns_rdata::rdclass, dns_rdataset::ttl, dns_rdata::type, update_one_rr(), and updatesecure().
Referenced by zone_sign().
static isc_result_t fixup_nsec3param | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
dns_nsec3chain_t * | chain, | |||
isc_boolean_t | active, | |||
dns_rdatatype_t | privatetype, | |||
dns_diff_t * | diff | |||
) | [static] |
Definition at line 6760 of file zone.c.
References buffer, CHECK, dns_rdata::data, dns_db_class(), dns_db_detachnode(), dns_db_findrdataset(), dns_db_getoriginnode(), dns_db_origin(), DNS_DIFFOP_ADD, DNS_DIFFOP_DEL, DNS_NSEC3PARAM_BUFFERSIZE, dns_nsec3param_fromprivate(), dns_nsec_nseconly(), dns_rdata_fromstruct(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), isc_buffer_init, ISC_FALSE, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, RUNTIME_CHECK, dns_rdataset::ttl, and update_one_rr().
Referenced by zone_nsec3chain().
static isc_result_t deletematchingnsec3 | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
dns_dbnode_t * | node, | |||
dns_name_t * | name, | |||
const dns_rdata_nsec3param_t * | param, | |||
dns_diff_t * | diff | |||
) | [static] |
Definition at line 6927 of file zone.c.
References CHECK, dns_db_findrdataset(), DNS_DIFFOP_DEL, DNS_RDATA_INIT, dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_next(), ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, dns_rdataset::ttl, and update_one_rr().
Referenced by zone_nsec3chain().
static isc_result_t need_nsec_chain | ( | dns_db_t * | db, | |
dns_dbversion_t * | ver, | |||
const dns_rdata_nsec3param_t * | param, | |||
isc_boolean_t * | answer | |||
) | [static] |
Definition at line 6966 of file zone.c.
References CHECK, dns_db_detachnode(), dns_db_findrdataset(), dns_db_getoriginnode(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_disassociate(), dns_rdataset_first(), dns_rdataset_init(), dns_rdataset_isassociated(), dns_rdataset_next(), ISC_FALSE, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, ISC_TRUE, NSEC3REMOVE, and RUNTIME_CHECK.
Referenced by zone_nsec3chain().
static isc_result_t update_sigs | ( | dns_diff_t * | diff, | |
dns_db_t * | db, | |||
dns_dbversion_t * | version, | |||
dst_key_t * | zone_keys[], | |||
unsigned int | nkeys, | |||
dns_zone_t * | zone, | |||
isc_stdtime_t | inception, | |||
isc_stdtime_t | expire, | |||
isc_stdtime_t | now, | |||
isc_boolean_t | check_ksk, | |||
isc_boolean_t | keyset_kskonly, | |||
zonediff_t * | zonediff | |||
) | [static] |
Definition at line 7044 of file zone.c.
References add_sigs(), del_sigs(), zonediff_t::diff, dns_diff_appendminimal(), dns_name_equal(), dns_result_totext(), dns_zone_log(), INSIST, ISC_FALSE, ISC_LIST_HEAD, ISC_LIST_NEXT, ISC_LIST_UNLINK, ISC_LOG_ERROR, ISC_R_SUCCESS, dns_diff::mctx, dns_difftuple::name, dns_difftuple::rdata, and dns_rdata::type.
Referenced by zone_nsec3chain(), and zone_sign().
static void zone_nsec3chain | ( | dns_zone_t * | zone | ) | [static] |
Definition at line 7096 of file zone.c.
References add_nsec(), add_sigs(), CHECK, cleanup(), del_sigs(), delete_nsec(), deletematchingnsec3(), zonediff_t::diff, dns_db_allrdatasets(), dns_db_attach(), dns_db_closeversion(), dns_db_detach(), dns_db_detachnode(), dns_db_find(), dns_db_getoriginnode(), dns_db_newversion(), dns_db_origin(), DNS_DBFIND_NOWILD, dns_dbiterator_current(), dns_dbiterator_destroy(), dns_dbiterator_first(), dns_dbiterator_next(), dns_dbiterator_pause(), dns_diff_clear(), dns_diff_init(), DNS_DUMP_DELAY, dns_fixedname_init, dns_fixedname_name, DNS_MAXZONEKEYS, dns_name_copy(), dns_name_equal(), dns_name_issubdomain(), dns_nsec3_addnsec3(), dns_nsec3_addnsec3s(), DNS_R_DELEGATION, DNS_R_DNAME, dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdatasetiter_current(), dns_rdatasetiter_destroy(), dns_rdatasetiter_first(), dns_rdatasetiter_next(), dns_result_totext(), dns_zone_getsigvalidityinterval(), dns_zone_log(), DNS_ZONE_OPTION, DNS_ZONE_SETFLAG, DNS_ZONEFLG_NEEDNOTIFY, DNS_ZONEOPT_DNSKEYKSKONLY, DNS_ZONEOPT_UPDATECHECKKSK, dst_key_free(), ENTER, find_zone_keys(), fixed, fixup_nsec3param(), INSIST, ISC_FALSE, isc_interval_set(), ISC_LIST_APPEND, ISC_LIST_EMPTY, ISC_LIST_HEAD, ISC_LIST_INIT, ISC_LIST_NEXT, ISC_LIST_PREPEND, ISC_LIST_TAIL, ISC_LIST_UNLINK, ISC_LOG_DEBUG, ISC_LOG_ERROR, isc_mem_put, ISC_R_FAILURE, ISC_R_NOMORE, ISC_R_NOTFOUND, ISC_R_SUCCESS, isc_random_get(), isc_rwlocktype_read, isc_stdtime_get(), isc_time_nowplusinterval(),