OpenDNSSEC-signer
1.4.6
|
#include "adapter/adapter.h"
#include "shared/allocator.h"
#include "shared/file.h"
#include "shared/hsm.h"
#include "shared/locks.h"
#include "shared/log.h"
#include "shared/status.h"
#include "shared/util.h"
#include "signer/backup.h"
#include "signer/zone.h"
#include "wire/netio.h"
#include <ldns/ldns.h>
Go to the source code of this file.
Functions | |
zone_type * | zone_create (char *name, ldns_rr_class klass) |
ods_status | zone_load_signconf (zone_type *zone, signconf_type **new_signconf) |
ods_status | zone_reschedule_task (zone_type *zone, schedule_type *taskq, task_id what) |
ods_status | zone_publish_dnskeys (zone_type *zone) |
void | zone_rollback_dnskeys (zone_type *zone) |
ods_status | zone_publish_nsec3param (zone_type *zone) |
void | zone_rollback_nsec3param (zone_type *zone) |
ods_status | zone_prepare_keys (zone_type *zone) |
ods_status | zone_update_serial (zone_type *zone) |
rrset_type * | zone_lookup_rrset (zone_type *zone, ldns_rdf *owner, ldns_rr_type type) |
ods_status | zone_add_rr (zone_type *zone, ldns_rr *rr, int do_stats) |
ods_status | zone_del_rr (zone_type *zone, ldns_rr *rr, int do_stats) |
void | zone_merge (zone_type *z1, zone_type *z2) |
void | zone_cleanup (zone_type *zone) |
ods_status | zone_recover2 (zone_type *zone) |
ods_status | zone_backup2 (zone_type *zone) |
ods_status zone_add_rr | ( | zone_type * | zone, |
ldns_rr * | rr, | ||
int | do_stats | ||
) |
Add RR.
Definition at line 564 of file zone.c.
References zone_struct::apex, zone_struct::db, domain_struct::dname, domain_add_rrset(), domain_lookup_rrset(), rr_struct::is_added, domain_struct::is_apex, rr_struct::is_removed, zone_struct::name, namedb_add_domain(), namedb_domain_entize(), namedb_lookup_domain(), rrset_struct::needs_signing, ods_log_assert, ods_log_error(), ODS_STATUS_ERR, ODS_STATUS_OK, ODS_STATUS_UNCHANGED, rr_struct::rr, rrset_add_rr(), rrset_create(), rrset_lookup_rr(), zone_struct::signconf, stats_struct::sort_count, zone_struct::stats, and domain_struct::zone.
Referenced by zone_publish_dnskeys(), and zone_publish_nsec3param().
ods_status zone_backup2 | ( | zone_type * | zone | ) |
Backup zone.
Backup zone
Backup signconf
Backup NSEC3 parameters
Backup keylist
Backup domains and stuff
Done
Definition at line 1033 of file zone.c.
References zone_struct::db, namedb_struct::inbserial, namedb_struct::intserial, keylist_backup(), signconf_struct::keys, zone_struct::klass, zone_struct::name, namedb_backup2(), signconf_struct::nsec3_algo, signconf_struct::nsec3_iterations, signconf_struct::nsec3_optout, signconf_struct::nsec3_salt, signconf_struct::nsec3params, nsec3params_backup(), ods_build_path(), ods_fclose(), ods_fopen(), ods_log_assert, ods_log_error(), ODS_STATUS_FOPEN_ERR, ODS_STATUS_MALLOC_ERR, ODS_STATUS_OK, ODS_STATUS_RENAME_ERR, namedb_struct::outserial, nsec3params_struct::rr, zone_struct::signconf, signconf_backup(), zone_struct::task, and task_struct::when.
void zone_cleanup | ( | zone_type * | zone | ) |
Clean up zone.
Definition at line 744 of file zone.c.
References adapter_cleanup(), zone_struct::adinbound, zone_struct::adoutbound, zone_struct::allocator, allocator_cleanup(), allocator_deallocate(), zone_struct::apex, zone_struct::db, zone_struct::ixfr, ixfr_cleanup(), lock_basic_destroy, zone_struct::name, namedb_cleanup(), zone_struct::notify, zone_struct::notify_args, notify_cleanup(), zone_struct::notify_command, zone_struct::policy_name, zone_struct::signconf, signconf_cleanup(), zone_struct::signconf_filename, zone_struct::stats, stats_cleanup(), zone_struct::xfr_lock, zone_struct::xfrd, xfrd_cleanup(), and zone_struct::zone_lock.
Referenced by engine_update_zones(), parse_zonelist_zones(), zone_create(), zonelist_add_zone(), and zonelist_lookup_zone_by_name().
zone_type* zone_create | ( | char * | name, |
ldns_rr_class | klass | ||
) |
Create a new zone.
Definition at line 54 of file zone.c.
References zone_struct::adinbound, zone_struct::adoutbound, zone_struct::allocator, allocator_alloc(), allocator_cleanup(), allocator_create(), allocator_strdup(), zone_struct::apex, zone_struct::db, zone_struct::default_ttl, zone_struct::ixfr, ixfr_create(), zone_struct::klass, lock_basic_init, zone_struct::name, namedb_create(), zone_struct::notify, zone_struct::notify_args, zone_struct::notify_command, zone_struct::notify_ns, ods_log_error(), zone_struct::policy_name, zone_struct::signconf, signconf_create(), zone_struct::signconf_filename, zone_struct::stats, stats_create(), zone_struct::task, zone_struct::xfr_lock, zone_struct::xfrd, zone_struct::zl_status, zone_cleanup(), zone_struct::zone_lock, and ZONE_ZL_OK.
Referenced by parse_zonelist_zones(), and zonelist_lookup_zone_by_name().
ods_status zone_del_rr | ( | zone_type * | zone, |
ldns_rr * | rr, | ||
int | do_stats | ||
) |
Delete RR.
Definition at line 634 of file zone.c.
References zone_struct::db, domain_lookup_rrset(), rr_struct::is_added, rr_struct::is_removed, zone_struct::name, namedb_lookup_domain(), ods_log_assert, ods_log_error(), ods_log_warning(), ODS_STATUS_OK, ODS_STATUS_UNCHANGED, rrset_lookup_rr(), zone_struct::signconf, stats_struct::sort_count, and zone_struct::stats.
ods_status zone_load_signconf | ( | zone_type * | zone, |
signconf_type ** | new_signconf | ||
) |
Load signer configuration for zone.
Definition at line 136 of file zone.c.
References signconf_struct::last_modified, zone_struct::name, ods_log_alert(), ods_log_debug(), ods_log_error(), ods_log_verbose(), ods_log_warning(), ods_status2str(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_INSECURE, ODS_STATUS_OK, ODS_STATUS_UNCHANGED, zone_struct::signconf, zone_struct::signconf_filename, signconf_update(), and time_datestamp().
Referenced by tools_signconf().
rrset_type* zone_lookup_rrset | ( | zone_type * | zone, |
ldns_rdf * | owner, | ||
ldns_rr_type | type | ||
) |
Lookup RRset.
Definition at line 545 of file zone.c.
References zone_struct::db, domain_lookup_rrset(), and namedb_lookup_domain().
Referenced by adapi_printaxfr(), adapi_printixfr(), backup_read_namedb(), zone_publish_dnskeys(), zone_publish_nsec3param(), zone_rollback_dnskeys(), zone_rollback_nsec3param(), and zone_update_serial().
Merge zones.
Definition at line 678 of file zone.c.
References adapter_compare(), zone_struct::adinbound, zone_struct::adoutbound, zone_struct::name, ods_log_error(), ods_strcmp(), zone_struct::policy_name, zone_struct::signconf_filename, zone_struct::zl_status, and ZONE_ZL_UPDATED.
ods_status zone_prepare_keys | ( | zone_type * | zone | ) |
Prepare keys for signing.
Definition at line 428 of file zone.c.
References zone_struct::apex, keylist_struct::count, zone_struct::db, key_struct::dnskey, key_struct::hsmkey, signconf_struct::keys, keylist_struct::keys, lhsm_get_key(), zone_struct::name, ods_log_assert, ods_log_error(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_HSM_ERR, ODS_STATUS_OK, key_struct::params, and zone_struct::signconf.
ods_status zone_publish_dnskeys | ( | zone_type * | zone | ) |
Publish the keys as indicated by the signer configuration.
Definition at line 231 of file zone.c.
References zone_struct::apex, keylist_struct::count, zone_struct::db, zone_struct::default_ttl, key_struct::dnskey, signconf_struct::dnskey_ttl, duration2time(), signconf_struct::keys, keylist_struct::keys, zone_struct::klass, lhsm_get_key(), zone_struct::name, ods_log_assert, ods_log_error(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_HSM_ERR, ODS_STATUS_OK, ODS_STATUS_UNCHANGED, key_struct::publish, rr_struct::rr, rrset_lookup_rr(), zone_struct::signconf, zone_add_rr(), and zone_lookup_rrset().
Referenced by tools_input(), and zone_recover2().
ods_status zone_publish_nsec3param | ( | zone_type * | zone | ) |
Publish the NSEC3 parameters as indicated by the signer configuration.
Always set bit 7 of the flags to zero, according to rfc5155 section 11
Definition at line 335 of file zone.c.
References nsec3params_struct::algorithm, zone_struct::apex, zone_struct::db, duration2time(), nsec3params_struct::iterations, zone_struct::klass, zone_struct::name, signconf_struct::nsec3param_ttl, signconf_struct::nsec3params, signconf_struct::nsec_type, ods_log_assert, ods_log_error(), ods_status2str(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_MALLOC_ERR, ODS_STATUS_OK, ODS_STATUS_UNCHANGED, rr_struct::rr, nsec3params_struct::rr, rrset_lookup_rr(), nsec3params_struct::salt_data, nsec3params_struct::salt_len, zone_struct::signconf, zone_add_rr(), and zone_lookup_rrset().
Referenced by tools_input(), and zone_recover2().
ods_status zone_recover2 | ( | zone_type * | zone | ) |
Recover zone from backup.
Definition at line 782 of file zone.c.
References signconf_struct::allocator, allocator_strdup(), backup_read_check_str(), backup_read_duration(), backup_read_int(), backup_read_ixfr(), backup_read_namedb(), backup_read_rr_type(), backup_read_str(), backup_read_time_t(), backup_read_uint32_t(), zone_struct::db, zone_struct::default_ttl, signconf_struct::dnskey_ttl, duration2time(), namedb_struct::have_serial, namedb_struct::inbserial, namedb_struct::intserial, namedb_struct::is_initialized, zone_struct::ixfr, ixfr_cleanup(), ixfr_create(), ixfr_struct::ixfr_lock, ixfr_purge(), key_recover2(), keylist_create(), signconf_struct::keys, zone_struct::klass, signconf_struct::last_modified, lock_basic_lock, lock_basic_unlock, zone_struct::name, namedb_cleanup(), namedb_create(), signconf_struct::nsec3_algo, signconf_struct::nsec3_iterations, signconf_struct::nsec3_optout, signconf_struct::nsec3_salt, signconf_struct::nsec3params, nsec3params_create(), signconf_struct::nsec_type, ods_build_path(), ods_fclose(), ods_fopen(), ods_log_assert, ods_log_error(), ods_log_warning(), ods_status2str(), ODS_STATUS_ERR, ODS_STATUS_MALLOC_ERR, ODS_STATUS_OK, ODS_STATUS_UNCHANGED, ods_strcmp(), namedb_struct::outserial, signconf_struct::sig_inception_offset, signconf_struct::sig_jitter, signconf_struct::sig_refresh_interval, signconf_struct::sig_resign_interval, signconf_struct::sig_validity_default, signconf_struct::sig_validity_denial, zone_struct::signconf, signconf_cleanup(), signconf_create(), signconf_struct::soa_min, signconf_struct::soa_serial, signconf_struct::soa_ttl, zone_struct::stats, stats_clear(), stats_struct::stats_lock, zone_struct::task, task_create(), TASK_SIGN, zone_publish_dnskeys(), and zone_publish_nsec3param().
ods_status zone_reschedule_task | ( | zone_type * | zone, |
schedule_type * | taskq, | ||
task_id | what | ||
) |
Reschedule task for zone.
Only reschedule if what to do is lower than what was scheduled.
Definition at line 187 of file zone.c.
References task_struct::halted, task_struct::halted_when, task_struct::interrupt, lock_basic_lock, lock_basic_unlock, zone_struct::name, ods_log_assert, ods_log_debug(), ods_log_verbose(), ODS_STATUS_OK, schedule_struct::schedule_lock, schedule_task(), zone_struct::task, time_now(), unschedule_task(), task_struct::what, and task_struct::when.
Referenced by engine_update_zones().
void zone_rollback_dnskeys | ( | zone_type * | zone | ) |
Unlink DNSKEY RRs.
Definition at line 305 of file zone.c.
References zone_struct::apex, keylist_struct::count, key_struct::dnskey, rr_struct::exists, signconf_struct::keys, keylist_struct::keys, rr_struct::rr, rrset_lookup_rr(), zone_struct::signconf, and zone_lookup_rrset().
Referenced by tools_input().
void zone_rollback_nsec3param | ( | zone_type * | zone | ) |
Unlink NSEC3PARAM RR.
Definition at line 403 of file zone.c.
References zone_struct::apex, rr_struct::exists, signconf_struct::nsec3params, rr_struct::rr, nsec3params_struct::rr, rrset_lookup_rr(), zone_struct::signconf, and zone_lookup_rrset().
Referenced by tools_input().
ods_status zone_update_serial | ( | zone_type * | zone | ) |
Update serial.
Definition at line 469 of file zone.c.
References zone_struct::apex, zone_struct::db, namedb_struct::inbserial, namedb_struct::intserial, zone_struct::name, namedb_update_serial(), ods_log_assert, ods_log_debug(), ods_log_error(), ods_log_verbose(), ods_status2str(), ODS_STATUS_CONFLICT_ERR, ODS_STATUS_ERR, ODS_STATUS_OK, rr_struct::rr, rrset_struct::rrs, rrset_add_rr(), rrset_diff(), SE_SOA_RDATA_SERIAL, namedb_struct::serial_updated, zone_struct::signconf, signconf_struct::soa_serial, and zone_lookup_rrset().