OpenDNSSEC-signer 1.2.1
|
#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>
Go to the source code of this file.
int zonedata_add_denial | ( | zonedata_type * | zd, |
domain_type * | domain, | ||
ldns_rdf * | apex, | ||
nsec3params_type * | nsec3params | ||
) |
Add denial of existence data point to the zone data.
Definition at line 500 of file zonedata.c.
References denial_struct::bitmap_changed, domain_struct::denial, zonedata_struct::denial_chain, denial_cleanup(), denial_create(), denial_struct::domain, domain_struct::name, denial_struct::nxt_changed, se_log_assert, se_log_error(), and zonedata_lookup_denial().
Referenced by zonedata_nsecify(), and zonedata_nsecify3().
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 | ||
) |
Add RR to the zone data.
Definition at line 1460 of file zonedata.c.
References domain_add_rr(), domain_create(), domain_struct::domain_status, DOMAIN_STATUS_APEX, zonedata_struct::domains, se_log_assert, se_log_error(), zonedata_add_domain(), and zonedata_lookup_domain().
Referenced by zone_add_rr().
void zonedata_cancel_update | ( | zonedata_type * | zd | ) |
Cancel update.
Definition at line 1435 of file zonedata.c.
References domain_cancel_update(), zonedata_struct::domains, and se_log_assert.
Referenced by tools_add_dnskeys(), tools_read_input(), zone_update_zonedata(), and zonedata_update().
void zonedata_cleanup | ( | zonedata_type * | zonedata | ) |
Clean up zone data.
Definition at line 1656 of file zonedata.c.
References zonedata_struct::denial_chain, zonedata_struct::domains, se_free(), se_log_warning(), zonedata_cleanup_denials(), and zonedata_cleanup_domains().
Referenced by zone_cleanup(), and zone_recover_from_backup().
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 | ) |
Create empty zone data..
Definition at line 66 of file zonedata.c.
References zonedata_struct::default_ttl, zonedata_struct::denial_chain, zonedata_struct::domains, zonedata_struct::inbound_serial, zonedata_struct::initialized, zonedata_struct::internal_serial, zonedata_struct::outbound_serial, and se_malloc().
Referenced by zone_create(), and zone_recover_from_backup().
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 | ||
) |
Add empty non-terminals to zone data.
Definition at line 809 of file zonedata.c.
References domain_struct::domain_status, DOMAIN_STATUS_ENT_GLUE, DOMAIN_STATUS_NONE, DOMAIN_STATUS_OCCLUDED, domain_update_status(), zonedata_struct::domains, se_log_assert, and se_log_error().
Referenced by zone_nsecify().
int zonedata_examine | ( | zonedata_type * | zd, |
ldns_rdf * | apex, | ||
int | is_file | ||
) |
Examine zone data.
Definition at line 1311 of file zonedata.c.
References domain_examine_rrset_is_alone(), domain_examine_rrset_is_singleton(), zonedata_struct::domains, and se_log_assert.
Referenced by zone_update_zonedata().
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 | ||
) |
Lookup domain.
Definition at line 277 of file zonedata.c.
References zonedata_struct::domains.
Referenced by zonedata_add_rr(), zonedata_del_rr(), zonedata_recover_from_backup(), zonedata_recover_rr_from_backup(), and zonedata_recover_rrsig_from_backup().
int zonedata_nsecify | ( | zonedata_type * | zd, |
ldns_rr_class | klass, | ||
stats_type * | stats | ||
) |
Add NSEC records to zonedata.
Now we have the complete denial of existence chain
Definition at line 843 of file zonedata.c.
References zonedata_struct::default_ttl, domain_struct::denial, zonedata_struct::denial_chain, denial_nsecify(), domain_count_rrset(), domain_struct::domain_status, DOMAIN_STATUS_APEX, DOMAIN_STATUS_NONE, DOMAIN_STATUS_OCCLUDED, zonedata_struct::domains, domain_struct::name, stats_struct::nsec_count, se_log_alert(), se_log_assert, se_log_error(), se_log_warning(), zonedata_add_denial(), and zonedata_del_denial().
Referenced by zone_nsecify().
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 | ||
) |
Recover zone data from backup.
Definition at line 88 of file zonedata.c.
References backup_read_check_str(), backup_read_str(), denial_struct::bitmap_changed, domain_struct::denial, zonedata_struct::denial_chain, denial_create(), denial_recover_from_backup(), denial_struct::domain, domain_recover_from_backup(), domain_struct::domain_status, DOMAIN_STATUS_APEX, zonedata_struct::domains, domain_struct::name, denial_struct::nxt_changed, domain_struct::parent, denial_struct::rrset, rrset_create_frm_rr(), se_free(), se_log_assert, se_log_error(), se_strcmp(), and zonedata_lookup_domain().
Referenced by zone_recover_from_backup().
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 | ||
) |
Recover RRSIG from backup.
Definition at line 1514 of file zonedata.c.
References denial_recover_rrsig_from_backup(), domain_recover_rrsig_from_backup(), zonedata_struct::domains, se_log_assert, se_log_error(), zonedata_lookup_denial(), and zonedata_lookup_domain().
int zonedata_sign | ( | zonedata_type * | zd, |
ldns_rdf * | owner, | ||
signconf_type * | sc, | ||
stats_type * | stats | ||
) |
Add RRSIG records to zonedata.
Definition at line 1170 of file zonedata.c.
References DNS_SERIAL_GT, domain_sign(), zonedata_struct::domains, duration2time(), zonedata_struct::internal_serial, zonedata_struct::outbound_serial, se_log_assert, se_log_debug(), se_log_error(), signconf_struct::sig_inception_offset, signconf_struct::sig_jitter, signconf_struct::sig_validity_denial, and time_now().
Referenced by zone_sign().
int zonedata_update | ( | zonedata_type * | zd, |
signconf_type * | sc | ||
) |
Update zone data with pending changes.
Definition at line 1358 of file zonedata.c.
References domain_count_rrset(), domain_struct::domain_status, DOMAIN_STATUS_ENT_AUTH, DOMAIN_STATUS_ENT_GLUE, DOMAIN_STATUS_ENT_NS, domain_update(), zonedata_struct::domains, zonedata_struct::internal_serial, domain_struct::parent, se_log_assert, se_log_crit(), se_log_deeebug(), se_log_error(), domain_struct::subdomain_count, zonedata_cancel_update(), and zonedata_del_domain().
Referenced by zone_update_zonedata().