OpenDNSSEC-signer  1.3.9
Functions
zonedata.c File Reference
#include "config.h"
#include "adapter/adapter.h"
#include "shared/allocator.h"
#include "shared/log.h"
#include "shared/util.h"
#include "signer/backup.h"
#include "signer/domain.h"
#include "signer/nsec3params.h"
#include "signer/zonedata.h"
#include <ldns/ldns.h>
Include dependency graph for zonedata.c:

Go to the source code of this file.

Functions

void log_rdf (ldns_rdf *rdf, const char *pre, int level)
void zonedata_init_denial (zonedata_type *zd)
zonedata_typezonedata_create (allocator_type *allocator)
ods_status zonedata_recover (zonedata_type *zd, FILE *fd)
domain_typezonedata_lookup_domain (zonedata_type *zd, ldns_rdf *dname)
domain_typezonedata_add_domain (zonedata_type *zd, domain_type *domain)
domain_typezonedata_del_domain (zonedata_type *zd, domain_type *domain)
denial_typezonedata_lookup_denial (zonedata_type *zd, ldns_rdf *dname)
ods_status zonedata_add_denial (zonedata_type *zd, domain_type *domain, ldns_rdf *apex, nsec3params_type *nsec3params)
denial_typezonedata_del_denial (zonedata_type *zd, denial_type *denial)
ods_status zonedata_diff (zonedata_type *zd, keylist_type *kl)
ods_status zonedata_commit (zonedata_type *zd)
void zonedata_rollback (zonedata_type *zd)
ods_status zonedata_entize (zonedata_type *zd, ldns_rdf *apex)
ods_status zonedata_nsecify (zonedata_type *zd, ldns_rr_class klass, uint32_t ttl, uint32_t *num_added)
ods_status zonedata_nsecify3 (zonedata_type *zd, ldns_rr_class klass, uint32_t ttl, nsec3params_type *nsec3params, uint32_t *num_added)
ods_status zonedata_update_serial (zonedata_type *zd, signconf_type *sc)
ods_status zonedata_queue (zonedata_type *zd, fifoq_type *q, worker_type *worker)
ods_status zonedata_examine (zonedata_type *zd, ldns_rdf *apex, adapter_mode mode)
void zonedata_wipe_denial (zonedata_type *zd)
void zonedata_cleanup_chain (zonedata_type *zd)
void zonedata_cleanup (zonedata_type *zd)
void zonedata_backup (FILE *fd, zonedata_type *zd)
ods_status zonedata_print (FILE *fd, zonedata_type *zd)

Function Documentation

void log_rdf ( ldns_rdf *  rdf,
const char *  pre,
int  level 
)
ods_status zonedata_add_denial ( zonedata_type zd,
domain_type domain,
ldns_rdf *  apex,
nsec3params_type nsec3params 
)
domain_type* zonedata_add_domain ( zonedata_type zd,
domain_type domain 
)

Add a domain to the zone data.

Definition at line 325 of file zonedata.c.

References domain_struct::dname, zonedata_struct::domains, log_rdf(), ods_log_assert, and ods_log_error().

Referenced by zone_add_rr().

void zonedata_backup ( FILE *  fd,
zonedata_type zd 
)

Backup zone data.

Definition at line 1561 of file zonedata.c.

References domain_backup(), and zonedata_struct::domains.

Referenced by zone_backup().

void zonedata_cleanup ( zonedata_type zd)

Clean up zone data.

Definition at line 1541 of file zonedata.c.

References zonedata_struct::allocator, allocator_deallocate(), and zonedata_cleanup_chain().

Referenced by zone_cleanup(), and zone_recover().

void zonedata_cleanup_chain ( zonedata_type zd)

Clean up denial of existence chain.

Definition at line 1525 of file zonedata.c.

References zonedata_struct::denial_chain.

Referenced by zone_load_signconf(), and zonedata_cleanup().

ods_status zonedata_commit ( zonedata_type zd)
zonedata_type* zonedata_create ( allocator_type allocator)
denial_type* zonedata_del_denial ( zonedata_type zd,
denial_type denial 
)

Delete denial of existence data point from the zone data.

Definition at line 630 of file zonedata.c.

References zonedata_struct::denial_chain, log_rdf(), ods_log_assert, ods_log_error(), and denial_struct::owner.

Referenced by zonedata_del_domain(), zonedata_nsecify(), and zonedata_nsecify3().

domain_type* zonedata_del_domain ( zonedata_type zd,
domain_type domain 
)

Delete domain from the zone data.

Definition at line 386 of file zonedata.c.

References domain_struct::denial, domain_struct::dname, zonedata_struct::domains, log_rdf(), ods_log_assert, ods_log_error(), and zonedata_del_denial().

Referenced by zonedata_commit().

ods_status zonedata_diff ( zonedata_type zd,
keylist_type kl 
)

Calculate differences at the zonedata between current and new RRsets.

Definition at line 656 of file zonedata.c.

References domain_diff(), zonedata_struct::domains, and ODS_STATUS_OK.

Referenced by adapi_trans_full().

ods_status zonedata_entize ( zonedata_type zd,
ldns_rdf *  apex 
)

Add empty non-terminals to zone data.

Definition at line 913 of file zonedata.c.

References domain_dstatus(), zonedata_struct::domains, ods_log_assert, ods_log_error(), ODS_STATUS_ASSERT_ERR, and ODS_STATUS_OK.

Referenced by tools_nsecify(), and zone_recover().

ods_status zonedata_examine ( zonedata_type zd,
ldns_rdf *  apex,
adapter_mode  mode 
)
void zonedata_init_denial ( zonedata_type zd)

Initialize denial of existence chain.

Definition at line 137 of file zonedata.c.

References zonedata_struct::denial_chain.

Referenced by zone_load_signconf(), and zonedata_create().

denial_type* zonedata_lookup_denial ( zonedata_type zd,
ldns_rdf *  dname 
)

Lookup denial of existence data point.

Definition at line 438 of file zonedata.c.

References zonedata_struct::denial_chain.

Referenced by zonedata_add_denial().

domain_type* zonedata_lookup_domain ( zonedata_type zd,
ldns_rdf *  dname 
)

Lookup domain.

Definition at line 312 of file zonedata.c.

References zonedata_struct::domains.

Referenced by zone_add_rr(), zone_del_rr(), zone_update_serial(), and zonedata_recover().

ods_status zonedata_nsecify ( zonedata_type zd,
ldns_rr_class  klass,
uint32_t  ttl,
uint32_t *  num_added 
)
ods_status zonedata_nsecify3 ( zonedata_type zd,
ldns_rr_class  klass,
uint32_t  ttl,
nsec3params_type nsec3params,
uint32_t *  num_added 
)

Add NSEC3 records to zonedata.

Additionally, for collision detection purposes, optionally create an additional NSEC3 RR corresponding to the original owner name with the asterisk label prepended (i.e., as if a wildcard existed as a child of this owner name) and keep track of this original owner name. Mark this NSEC3 RR as temporary.

pseudo: wildcard_name = *.domain->dname; hashed_ownername = ldns_nsec3_hash_name(domain->dname, nsec3params->algorithm, nsec3params->iterations, nsec3params->salt_len, nsec3params->salt); domain->nsec3_wildcard = denial_create(hashed_ownername);

Now we have the complete denial of existence chain

Definition at line 1048 of file zonedata.c.

References domain_struct::denial, zonedata_struct::denial_chain, denial_nsecify3(), domain_struct::dname, DOMAIN_STATUS_APEX, DOMAIN_STATUS_NONE, DOMAIN_STATUS_NS, DOMAIN_STATUS_OCCLUDED, zonedata_struct::domains, domain_struct::dstatus, nsec3params_struct::flags, log_rdf(), ods_log_alert(), ods_log_assert, ods_log_error(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_ERR, ODS_STATUS_OK, zonedata_add_denial(), and zonedata_del_denial().

Referenced by tools_nsecify().

ods_status zonedata_print ( FILE *  fd,
zonedata_type zd 
)

Print zone data.

Definition at line 1586 of file zonedata.c.

References domain_print(), zonedata_struct::domains, ods_log_assert, ods_log_error(), ODS_STATUS_ASSERT_ERR, and ODS_STATUS_OK.

Referenced by zone_print().

ods_status zonedata_queue ( zonedata_type zd,
fifoq_type q,
worker_type worker 
)

Queue all RRsets.

Definition at line 1272 of file zonedata.c.

References domain_queue(), zonedata_struct::domains, and ODS_STATUS_OK.

ods_status zonedata_recover ( zonedata_type zd,
FILE *  fd 
)
void zonedata_rollback ( zonedata_type zd)

Rollback updates from zone data.

Definition at line 739 of file zonedata.c.

References domain_rollback(), and zonedata_struct::domains.

Referenced by tools_input(), zone_load_signconf(), and zone_publish_dnskeys().

ods_status zonedata_update_serial ( zonedata_type zd,
signconf_type sc 
)
void zonedata_wipe_denial ( zonedata_type zd)

Wipe out all NSEC RRsets.

Definition at line 1434 of file zonedata.c.

References zonedata_struct::denial_chain, denial_struct::rrset, and rrset_cleanup().

Referenced by zone_load_signconf().