OpenDNSSEC-signer 1.2.1
Functions

/build/buildd-opendnssec_1.2.1.dfsg-1-mips-p9AT07/opendnssec-1.2.1.dfsg/signer/src/signer/zonedata.c File Reference

#include "config.h"
#include "signer/backup.h"
#include "signer/denial.h"
#include "signer/domain.h"
#include "signer/nsec3params.h"
#include "signer/zonedata.h"
#include "util/file.h"
#include "util/log.h"
#include "util/se_malloc.h"
#include "util/util.h"
#include <ldns/ldns.h>
Include dependency graph for zonedata.c:

Go to the source code of this file.

Functions

zonedata_typezonedata_create (void)
int zonedata_recover_from_backup (zonedata_type *zd, FILE *fd)
domain_typezonedata_lookup_domain (zonedata_type *zd, ldns_rdf *name)
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)
int 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)
int zonedata_entize (zonedata_type *zd, ldns_rdf *apex)
int zonedata_nsecify (zonedata_type *zd, ldns_rr_class klass, stats_type *stats)
int zonedata_nsecify3 (zonedata_type *zd, ldns_rr_class klass, nsec3params_type *nsec3params, stats_type *stats)
int zonedata_sign (zonedata_type *zd, ldns_rdf *owner, signconf_type *sc, stats_type *stats)
int zonedata_examine (zonedata_type *zd, ldns_rdf *apex, int is_file)
int zonedata_update (zonedata_type *zd, signconf_type *sc)
void zonedata_cancel_update (zonedata_type *zd)
int zonedata_add_rr (zonedata_type *zd, ldns_rr *rr, int at_apex)
int zonedata_recover_rr_from_backup (zonedata_type *zd, ldns_rr *rr)
int zonedata_recover_rrsig_from_backup (zonedata_type *zd, ldns_rr *rrsig, const char *locator, uint32_t flags)
int zonedata_del_rr (zonedata_type *zd, ldns_rr *rr)
int zonedata_del_rrs (zonedata_type *zd)
void zonedata_cleanup_domains (ldns_rbtree_t *domain_tree)
void zonedata_cleanup_denials (ldns_rbtree_t *denial_tree)
void zonedata_cleanup (zonedata_type *zonedata)
void zonedata_print (FILE *fd, zonedata_type *zd)
void zonedata_print_nsec (FILE *fd, zonedata_type *zd)
void zonedata_print_rrsig (FILE *fd, zonedata_type *zd)

Function Documentation

int 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 291 of file zonedata.c.

References zonedata_struct::domains, domain_struct::name, domain_struct::rrsets, se_free(), se_log_assert, se_log_debug(), and se_log_error().

Referenced by zonedata_add_rr().

int zonedata_add_rr ( zonedata_type zd,
ldns_rr *  rr,
int  at_apex 
)
void zonedata_cancel_update ( zonedata_type zd)
void zonedata_cleanup ( zonedata_type zonedata)
void zonedata_cleanup_denials ( ldns_rbtree_t *  denial_tree)

Clean up denial of existence in zone data.

Definition at line 1628 of file zonedata.c.

References denial_cleanup(), and se_rbnode_free().

Referenced by zone_update_signconf(), and zonedata_cleanup().

void zonedata_cleanup_domains ( ldns_rbtree_t *  domain_tree)

Clean up domains in zone data.

Definition at line 1600 of file zonedata.c.

References domain_cleanup(), and se_rbnode_free().

Referenced by zonedata_cleanup().

zonedata_type* zonedata_create ( void  )
denial_type* zonedata_del_denial ( zonedata_type zd,
denial_type denial 
)

Delete denial of existence data point from the zone data.

Definition at line 658 of file zonedata.c.

References zonedata_struct::denial_chain, denial_struct::owner, se_log_assert, and se_log_error().

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

domain_type* zonedata_del_domain ( zonedata_type zd,
domain_type domain 
)

Delete a domain from the zone data.

Definition at line 366 of file zonedata.c.

References domain_struct::denial, zonedata_struct::domains, domain_struct::name, se_log_assert, se_log_deeebug(), se_log_error(), and zonedata_del_denial().

Referenced by zonedata_update().

int zonedata_del_rr ( zonedata_type zd,
ldns_rr *  rr 
)

Delete RR from the zone data.

Definition at line 1550 of file zonedata.c.

References domain_del_rr(), zonedata_struct::domains, se_log_assert, se_log_warning(), and zonedata_lookup_domain().

Referenced by zone_del_rr().

int zonedata_del_rrs ( zonedata_type zd)

Delete all current RRs from the zone data.

Definition at line 1573 of file zonedata.c.

References domain_del_rrs(), zonedata_struct::domains, and se_log_assert.

Referenced by adfile_read().

int zonedata_entize ( zonedata_type zd,
ldns_rdf *  apex 
)
int zonedata_examine ( zonedata_type zd,
ldns_rdf *  apex,
int  is_file 
)
denial_type* zonedata_lookup_denial ( zonedata_type zd,
ldns_rdf *  dname 
)

Lookup denial of existence data point.

Definition at line 443 of file zonedata.c.

References zonedata_struct::denial_chain.

Referenced by zonedata_add_denial(), and zonedata_recover_rrsig_from_backup().

domain_type* zonedata_lookup_domain ( zonedata_type zd,
ldns_rdf *  name 
)
int zonedata_nsecify ( zonedata_type zd,
ldns_rr_class  klass,
stats_type stats 
)
int zonedata_nsecify3 ( zonedata_type zd,
ldns_rr_class  klass,
nsec3params_type nsec3params,
stats_type stats 
)

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->name; hashed_ownername = ldns_nsec3_hash_name(domain->name, nsec3params->algorithm, nsec3params->iterations, nsec3params->salt_len, nsec3params->salt); domain->nsec3_wildcard = denial_create(hashed_ownername);

In each NSEC3 RR, insert the next hashed owner name by using the value of the next NSEC3 RR in hash order. The next hashed owner name of the last NSEC3 RR in the zone contains the value of the hashed owner name of the first NSEC3 RR in the hash order.

Definition at line 928 of file zonedata.c.

References zonedata_struct::default_ttl, domain_struct::denial, zonedata_struct::denial_chain, denial_nsecify3(), domain_struct::domain_status, DOMAIN_STATUS_APEX, DOMAIN_STATUS_ENT_GLUE, DOMAIN_STATUS_ENT_NS, DOMAIN_STATUS_NONE, DOMAIN_STATUS_NS, DOMAIN_STATUS_OCCLUDED, zonedata_struct::domains, nsec3params_struct::flags, domain_struct::name, stats_struct::nsec_count, se_free(), se_log_alert(), se_log_assert, se_log_debug(), se_log_error(), zonedata_add_denial(), and zonedata_del_denial().

Referenced by zone_nsecify().

void zonedata_print ( FILE *  fd,
zonedata_type zd 
)

Print zone data.

Definition at line 1681 of file zonedata.c.

References domain_print(), zonedata_struct::domains, and se_log_assert.

Referenced by zone_print().

void zonedata_print_nsec ( FILE *  fd,
zonedata_type zd 
)

Print NSEC(3)s in zone data.

Definition at line 1710 of file zonedata.c.

References domain_print_nsec(), zonedata_struct::domains, and se_log_assert.

Referenced by zone_nsecify().

void zonedata_print_rrsig ( FILE *  fd,
zonedata_type zd 
)

Print RRSIGs zone data.

Definition at line 1739 of file zonedata.c.

References domain_print_rrsig(), zonedata_struct::domains, and se_log_assert.

Referenced by zone_sign().

int zonedata_recover_from_backup ( zonedata_type zd,
FILE *  fd 
)
int zonedata_recover_rr_from_backup ( zonedata_type zd,
ldns_rr *  rr 
)

Recover RR from backup.

Definition at line 1491 of file zonedata.c.

References domain_recover_rr_from_backup(), zonedata_struct::domains, se_log_assert, se_log_error(), and zonedata_lookup_domain().

Referenced by zone_add_rr().

int zonedata_recover_rrsig_from_backup ( zonedata_type zd,
ldns_rr *  rrsig,
const char *  locator,
uint32_t  flags 
)
int zonedata_sign ( zonedata_type zd,
ldns_rdf *  owner,
signconf_type sc,
stats_type stats 
)
int zonedata_update ( zonedata_type zd,
signconf_type sc 
)