OpenDNSSEC-signer  1.4.9
Data Structures | Typedefs | Functions
namedb.h File Reference
#include "config.h"
#include "signer/denial.h"
#include "signer/domain.h"
#include "signer/nsec3params.h"
#include <ldns/ldns.h>
Include dependency graph for namedb.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  namedb_struct
 

Typedefs

typedef struct namedb_struct namedb_type
 

Functions

void namedb_init_denials (namedb_type *db)
 
namedb_typenamedb_create (void *zone)
 
ods_status namedb_update_serial (namedb_type *db, const char *zone_name, const char *format, uint32_t inbound_serial)
 
ods_status namedb_domain_entize (namedb_type *db, domain_type *domain, ldns_rdf *apex)
 
domain_typenamedb_lookup_domain (namedb_type *db, ldns_rdf *dname)
 
domain_typenamedb_add_domain (namedb_type *db, ldns_rdf *dname)
 
domain_typenamedb_del_domain (namedb_type *db, domain_type *domain)
 
denial_typenamedb_lookup_denial (namedb_type *db, ldns_rdf *dname)
 
denial_typenamedb_add_denial (namedb_type *db, ldns_rdf *dname, nsec3params_type *n3p)
 
denial_typenamedb_del_denial (namedb_type *db, denial_type *denial)
 
ods_status namedb_examine (namedb_type *db)
 
void namedb_diff (namedb_type *db, unsigned is_ixfr, unsigned more_coming)
 
void namedb_rollback (namedb_type *db, unsigned keepsc)
 
void namedb_nsecify (namedb_type *db, uint32_t *num_added)
 
void namedb_export (FILE *fd, namedb_type *db, ods_status *status)
 
void namedb_wipe_denial (namedb_type *db)
 
void namedb_cleanup_denials (namedb_type *db)
 
void namedb_cleanup (namedb_type *db)
 
void namedb_backup2 (FILE *fd, namedb_type *db)
 

Typedef Documentation

typedef struct namedb_struct namedb_type

Domain name database. Domain name database.

Definition at line 46 of file namedb.h.

Function Documentation

denial_type* namedb_add_denial ( namedb_type db,
ldns_rdf *  dname,
nsec3params_type n3p 
)

Add denial to namedb.

Parameters
[in]dbnamedb
[in]dnamedomain name
[in]n3pNSEC3 parameters, NULL if we do NSEC
Returns
denial_type* added denial

Add denial to namedb.

Definition at line 711 of file namedb.c.

References zone_struct::apex, db_str, denial_cleanup(), denial_create(), namedb_struct::denials, denial_struct::dname, LOG_DEEEBUG, log_dname(), LOG_ERR, denial_struct::node, denial_struct::nxt_changed, ods_log_assert, ods_log_error(), and namedb_struct::zone.

Referenced by namedb_lookup_denial().

domain_type* namedb_add_domain ( namedb_type db,
ldns_rdf *  dname 
)

Add domain to namedb.

Parameters
[in]dbnamedb
[in]dnamedomain name
Returns
domain_type* added domain

Add domain to namedb.

Definition at line 357 of file namedb.c.

References db_str, domain_struct::dname, domain_cleanup(), domain_create(), namedb_struct::domains, domain_struct::is_new, LOG_DEEEBUG, log_dname(), LOG_ERR, domain_struct::node, ods_log_error(), and namedb_struct::zone.

Referenced by namedb_domain_entize(), and zone_add_rr().

void namedb_backup2 ( FILE *  fd,
namedb_type db 
)

Backup namedb.

Parameters
[in]fdoutput file descriptor
[in]zdzone data

Backup namedb.

Definition at line 1176 of file namedb.c.

References namedb_struct::denials, domain_backup2(), namedb_struct::domains, denial_struct::rrset, rrset_backup2(), and rrset_print().

Referenced by zone_backup2().

void namedb_cleanup ( namedb_type db)

Clean up namedb.

Parameters
[in]namedbnamedb

Clean up namedb.

Definition at line 1154 of file namedb.c.

References zone_struct::allocator, allocator_deallocate(), namedb_cleanup_denials(), and namedb_struct::zone.

Referenced by namedb_create(), zone_cleanup(), and zone_recover2().

void namedb_cleanup_denials ( namedb_type db)

Clean up denial of existence chain.

Parameters
[in]dbnamedb

Clean up denials.

Definition at line 1138 of file namedb.c.

References namedb_struct::denials.

Referenced by namedb_cleanup(), and tools_signconf().

namedb_type* namedb_create ( void *  zone)
denial_type* namedb_del_denial ( namedb_type db,
denial_type denial 
)

Delete denial from namedb

Parameters
[in]dbnamedb
[in]denialdenial
Returns
denial_type* deleted denial

Delete denial from namedb

Definition at line 776 of file namedb.c.

References db_str, namedb_struct::denials, denial_struct::dname, denial_struct::domain, LOG_DEEEBUG, log_dname(), LOG_ERR, denial_struct::node, denial_struct::nxt_changed, ods_log_assert, ods_log_error(), rrset_struct::rr_count, and denial_struct::rrset.

Referenced by namedb_lookup_denial().

domain_type* namedb_del_domain ( namedb_type db,
domain_type domain 
)

Delete domain from namedb

Parameters
[in]dbnamedb
[in]domaindomain
Returns
domain_type* deleted domain

Delete domain from namedb

Definition at line 396 of file namedb.c.

References db_str, domain_struct::denial, domain_struct::dname, namedb_struct::domains, LOG_DEEEBUG, log_dname(), LOG_ERR, domain_struct::node, ods_log_assert, ods_log_error(), and domain_struct::rrsets.

Referenced by namedb_lookup_denial().

void namedb_diff ( namedb_type db,
unsigned  is_ixfr,
unsigned  more_coming 
)

Apply differences in db.

Parameters
[in]dbnamedb
[in]is_ixfrtrue if incremental change
[in]more_comingmore transactions possible

Apply differences in db.

Definition at line 819 of file namedb.c.

References domain_diff(), and namedb_struct::domains.

Referenced by adapi_trans_diff(), adapi_trans_full(), and backup_read_namedb().

ods_status namedb_domain_entize ( namedb_type db,
domain_type domain,
ldns_rdf *  apex 
)

Add empty non-terminals for domain.

Parameters
[in]dbnamedb
[in]domaindomain
[in]apexapex domain name
Returns
ods_status status

Add empty non-terminals for domain.

RFC5155:

  1. If the difference in number of labels between the apex and the original owner name is greater than 1, additional NSEC3 RRs need to be added for every empty non-terminal between the apex and the original owner name.

Definition at line 286 of file namedb.c.

References db_str, domain_struct::dname, namedb_struct::domains, namedb_add_domain(), namedb_lookup_domain(), ods_log_assert, ods_log_error(), ODS_STATUS_ERR, ODS_STATUS_OK, and domain_struct::parent.

Referenced by zone_add_rr().

ods_status namedb_examine ( namedb_type db)

Examine updates to namedb.

Parameters
[in]dbnamedb
Returns
ods_status status

Examine updates to db.

Definition at line 913 of file namedb.c.

References domain_struct::dname, domain_count_rrset_is_added(), domain_lookup_rrset(), namedb_struct::domains, domain_struct::is_apex, LOG_ERR, log_rrset(), ODS_STATUS_CONFLICT_ERR, ODS_STATUS_OK, rrset_count_rr_is_added(), and rrset_struct::rrtype.

void namedb_export ( FILE *  fd,
namedb_type db,
ods_status status 
)

Export db to file.

Parameters
[in]fdfile descriptor
[in]namedbnamedb
[out]statusstatus

Export db to file.

Definition at line 1043 of file namedb.c.

References db_str, domain_struct::denial, denial_cleanup(), denial_struct::domain, domain_cleanup(), domain_print(), namedb_struct::domains, ods_log_error(), ODS_STATUS_ASSERT_ERR, and ODS_STATUS_OK.

Referenced by adapi_printaxfr(), and adapi_printzone().

void namedb_init_denials ( namedb_type db)

Initialize denial of existence chain.

Parameters
[in]dbnamedb

Initialize denials.

Definition at line 96 of file namedb.c.

References namedb_struct::denials, and namedb_struct::domains.

Referenced by namedb_create(), and tools_signconf().

denial_type* namedb_lookup_denial ( namedb_type db,
ldns_rdf *  dname 
)
domain_type* namedb_lookup_domain ( namedb_type db,
ldns_rdf *  dname 
)

Look up domain.

Parameters
[in]dbnamedb
[in]dnamedomain name
Returns
domain_type* domain, if found

Lookup domain.

Definition at line 343 of file namedb.c.

References namedb_struct::domains.

Referenced by namedb_domain_entize(), zone_add_rr(), zone_del_rr(), and zone_lookup_rrset().

void namedb_nsecify ( namedb_type db,
uint32_t *  num_added 
)

Nsecify db.

Parameters
[in]dbnamedb
[out]num_addednumber of NSEC RRs added

Nsecify db.

Definition at line 882 of file namedb.c.

References denial_nsecify(), namedb_struct::denials, and ods_log_assert.

Referenced by adapi_trans_diff(), and adapi_trans_full().

void namedb_rollback ( namedb_type db,
unsigned  keepsc 
)

Rollback differences in db.

Parameters
[in]dbnamedb
[in]keepsckeep RRs that did not came from the adapter.

Rollback differences in db.

Definition at line 856 of file namedb.c.

References domain_rollback(), and namedb_struct::domains.

Referenced by addns_read_rr(), and tools_input().

ods_status namedb_update_serial ( namedb_type db,
const char *  zone_name,
const char *  format,
uint32_t  inbound_serial 
)

Determine new SOA SERIAL.

Parameters
[in]dbnamedb
[in]zone_namezone name
[in]format<SOA><Serial> format from signer configuration
[in]inbound_serialinbound serial
Returns
ods_status status

Determine new SOA SERIAL.

Definition at line 198 of file namedb.c.

References namedb_struct::altserial, db_str, namedb_struct::force_serial, namedb_struct::have_serial, namedb_struct::inbserial, namedb_struct::intserial, ods_log_debug(), ods_log_error(), ods_log_info(), ods_log_warning(), ODS_STATUS_ASSERT_ERR, ODS_STATUS_CONFLICT_ERR, ODS_STATUS_ERR, ODS_STATUS_OK, ods_strcmp(), namedb_struct::outserial, time_datestamp(), time_now(), and util_serial_gt().

Referenced by adapi_trans_diff(), and zone_update_serial().

void namedb_wipe_denial ( namedb_type db)