OpenDNSSEC-signer 1.3.0rc3
|
#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>
Go to the source code of this file.
void log_rdf | ( | ldns_rdf * | rdf, |
const char * | pre, | ||
int | level | ||
) |
Log RDF.
Definition at line 55 of file zonedata.c.
References ods_log_debug(), ods_log_deeebug(), ods_log_error(), ods_log_get_level(), ods_log_info(), ods_log_verbose(), and ods_log_warning().
Referenced by zonedata_add_denial(), zonedata_add_domain(), zonedata_del_denial(), zonedata_del_domain(), zonedata_nsecify(), and zonedata_nsecify3().
ods_status 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 540 of file zonedata.c.
References denial_struct::bitmap_changed, domain_struct::denial, zonedata_struct::denial_chain, denial_cleanup(), denial_create(), domain_struct::dname, denial_struct::domain, log_rdf(), denial_struct::nxt_changed, ods_log_assert, ods_log_error(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_CONFLICT_ERR, ODS_STATUS_ERR, ODS_STATUS_OK, 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 379 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 1599 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 1579 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 1563 of file zonedata.c.
References zonedata_struct::denial_chain.
Referenced by zone_load_signconf(), and zonedata_cleanup().
ods_status zonedata_commit | ( | zonedata_type * | zd | ) |
Commit updates to zone data.
Definition at line 738 of file zonedata.c.
References domain_struct::dname, domain_commit(), domain_count_rrset(), zonedata_struct::domains, ods_log_warning(), ODS_STATUS_ERR, ODS_STATUS_OK, and zonedata_del_domain().
Referenced by tools_input(), and zone_recover().
zonedata_type* zonedata_create | ( | allocator_type * | allocator | ) |
Create empty zone data..
Definition at line 165 of file zonedata.c.
References zonedata_struct::allocator, allocator_alloc(), zonedata_struct::default_ttl, zonedata_struct::inbound_serial, zonedata_struct::initialized, zonedata_struct::internal_serial, ods_log_assert, ods_log_error(), zonedata_struct::outbound_serial, and zonedata_init_denial().
Referenced by zone_create(), and zone_recover().
denial_type* zonedata_del_denial | ( | zonedata_type * | zd, |
denial_type * | denial | ||
) |
Delete denial of existence data point from the zone data.
Definition at line 683 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 440 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 709 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 966 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 | ||
) |
Examine updates to zone data.
Definition at line 1423 of file zonedata.c.
References ADAPTER_FILE, domain_examine_rrset_is_alone(), domain_examine_rrset_is_singleton(), zonedata_struct::domains, ods_log_assert, ODS_STATUS_ERR, and ODS_STATUS_OK.
Referenced by zone_examine().
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 491 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 366 of file zonedata.c.
References zonedata_struct::domains.
Referenced by zone_add_rr(), zone_del_rr(), zone_prepare_nsec3(), zone_update_serial(), and zonedata_recover().
ods_status zonedata_nsecify | ( | zonedata_type * | zd, |
ldns_rr_class | klass, | ||
uint32_t | ttl, | ||
uint32_t * | num_added | ||
) |
Add NSEC records to zonedata.
Now we have the complete denial of existence chain
Definition at line 1008 of file zonedata.c.
References domain_struct::denial, zonedata_struct::denial_chain, denial_nsecify(), domain_struct::dname, domain_count_rrset(), DOMAIN_STATUS_APEX, DOMAIN_STATUS_ENT, DOMAIN_STATUS_NONE, DOMAIN_STATUS_OCCLUDED, zonedata_struct::domains, domain_struct::dstatus, log_rdf(), ods_log_alert(), ods_log_assert, ods_log_error(), ods_log_warning(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_ERR, ODS_STATUS_OK, zonedata_add_denial(), and zonedata_del_denial().
Referenced by tools_nsecify().
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 1100 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 1624 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 1310 of file zonedata.c.
References domain_queue(), zonedata_struct::domains, and ODS_STATUS_OK.
ods_status zonedata_recover | ( | zonedata_type * | zd, |
FILE * | fd | ||
) |
Recover zone data from backup.
Definition at line 200 of file zonedata.c.
References backup_read_check_str(), backup_read_int(), backup_read_str(), domain_struct::denial, zonedata_struct::denial_chain, domain_recover(), ods_log_assert, ods_log_error(), ODS_STATUS_ERR, ODS_STATUS_OK, ods_strcmp(), and zonedata_lookup_domain().
Referenced by zone_recover().
void zonedata_rollback | ( | zonedata_type * | zd | ) |
Rollback updates from zone data.
Definition at line 792 of file zonedata.c.
References domain_rollback(), and zonedata_struct::domains.
Referenced by tools_input(), zone_load_signconf(), zone_prepare_nsec3(), and zone_publish_dnskeys().
ods_status zonedata_update_serial | ( | zonedata_type * | zd, |
signconf_type * | sc | ||
) |
Update the serial.
Definition at line 1239 of file zonedata.c.
References DNS_SERIAL_GT, zonedata_struct::inbound_serial, zonedata_struct::initialized, zonedata_struct::internal_serial, ods_log_assert, ods_log_debug(), ods_log_error(), ODS_STATUS_CONFLICT_ERR, ODS_STATUS_ERR, ODS_STATUS_OK, ods_strcmp(), zonedata_struct::outbound_serial, signconf_struct::soa_serial, time_datestamp(), and time_now().
Referenced by zone_update_serial().
void zonedata_wipe_denial | ( | zonedata_type * | zd | ) |
Wipe out all NSEC RRsets.
Definition at line 1472 of file zonedata.c.
References zonedata_struct::denial_chain, denial_struct::rrset, and rrset_cleanup().
Referenced by zone_load_signconf().