OpenDNSSEC-signer  2.1.4
Data Structures | Typedefs | Enumerations | Functions
zone.h File Reference
#include "config.h"
#include <ldns/ldns.h>
#include "adapter/adapter.h"
#include "scheduler/schedule.h"
#include "locks.h"
#include "status.h"
#include "signer/ixfr.h"
#include "signer/namedb.h"
#include "signer/signconf.h"
#include "signer/stats.h"
#include "signer/rrset.h"
#include "wire/buffer.h"
#include "wire/notify.h"
#include "wire/xfrd.h"
#include "datastructure.h"
#include "daemon/engine.h"

Go to the source code of this file.

Data Structures

struct  zone_struct
 

Typedefs

typedef enum zone_zl_status_enum zone_zl_status
 
typedef struct zone_struct zone_type
 

Enumerations

enum  zone_zl_status_enum { ZONE_ZL_OK = 0, ZONE_ZL_ADDED, ZONE_ZL_UPDATED, ZONE_ZL_REMOVED }
 

Functions

zone_typezone_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, int skip_hsm_access)
 
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_typezone_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)
 
ods_status zone_del_nsec3params (zone_type *zone)
 
void zone_merge (zone_type *z1, zone_type *z2)
 
void zone_cleanup (zone_type *zone)
 
ods_status zone_backup2 (zone_type *zone, time_t nextResign)
 
ods_status zone_recover2 (engine_type *engine, zone_type *zone)
 

Typedef Documentation

◆ zone_type

typedef struct zone_struct zone_type

Definition at line 41 of file zone.h.

◆ zone_zl_status

Definition at line 39 of file zone.h.

Enumeration Type Documentation

◆ zone_zl_status_enum

Enumerator
ZONE_ZL_OK 
ZONE_ZL_ADDED 
ZONE_ZL_UPDATED 
ZONE_ZL_REMOVED 

Definition at line 33 of file zone.h.

Function Documentation

◆ zone_add_rr()

ods_status zone_add_rr ( zone_type zone,
ldns_rr *  rr,
int  do_stats 
)

Add RR.

Parameters
[in]zonezone
[in]rrrr
[in]do_statstrue if we need to maintain statistics
Returns
ods_status status ODS_STATUS_OK: rr to be added to zone ODS_STATUS_UNCHANGED: rr not added to zone, rr already exists other: rr not added to zone, error occurred

Add RR.

Definition at line 531 of file zone.c.

References zone_struct::db, zone_struct::name, namedb_add_domain(), namedb_lookup_domain(), and zone_struct::signconf.

◆ zone_backup2()

ods_status zone_backup2 ( zone_type zone,
time_t  nextResign 
)

◆ zone_cleanup()

void zone_cleanup ( zone_type zone)

◆ zone_create()

zone_type* zone_create ( char *  name,
ldns_rr_class  klass 
)

Create a new zone.

Parameters
[in]namezone name
[in]klasszone class
Returns
zone_type* zone

Create a new zone.

Definition at line 55 of file zone.c.

References zone_struct::name, zone_struct::xfr_lock, and zone_struct::zone_lock.

Referenced by zonelist_lookup_zone_by_name().

◆ zone_del_nsec3params()

ods_status zone_del_nsec3params ( zone_type zone)

Remove all NSEC3PARAM RRs from the zone

Returns
ODS_STATUS_UNCHANGED or ODS_STATUS_OK

Delete NSEC3PARAM RRs.

Marks all NSEC3PARAM records as removed.

Definition at line 657 of file zone.c.

References zone_struct::apex, zone_struct::db, zone_struct::name, and namedb_lookup_domain().

◆ zone_del_rr()

ods_status zone_del_rr ( zone_type zone,
ldns_rr *  rr,
int  do_stats 
)

Delete RR.

Parameters
[in]zonezone
[in]rrrr
[in]do_statstrue if we need to maintain statistics
Returns
ods_status status ODS_STATUS_OK: rr to be removed from zone ODS_STATUS_UNCHANGED: rr not removed from zone, rr does not exist other: rr not removed from zone, error occurred

Delete RR.

Definition at line 613 of file zone.c.

References zone_struct::db, zone_struct::name, namedb_lookup_domain(), and zone_struct::signconf.

◆ zone_load_signconf()

ods_status zone_load_signconf ( zone_type zone,
signconf_type **  new_signconf 
)

Load signer configuration for zone.

Parameters
[in]zonezone
[out]new_signconfnew signer configuration
Returns
ods_status status ODS_STATUS_OK: new signer configuration loaded ODS_STATUS_UNCHANGED: signer configuration has not changed other: signer configuration not loaded, error occurred

Load signer configuration for zone.

Definition at line 133 of file zone.c.

References zone_struct::name, zone_struct::signconf, and zone_struct::signconf_filename.

Referenced by tools_signconf().

◆ zone_lookup_rrset()

rrset_type* zone_lookup_rrset ( zone_type zone,
ldns_rdf *  owner,
ldns_rr_type  type 
)

Lookup RRset.

Parameters
[in]zonezone
[in]ownerRRset owner
[in]typeRRtype
Returns
rrset_type* RRset, if found

Lookup RRset.

Definition at line 512 of file zone.c.

References zone_struct::db, domain_lookup_rrset(), and namedb_lookup_domain().

Referenced by zone_rollback_dnskeys(), and zone_rollback_nsec3param().

◆ zone_merge()

void zone_merge ( zone_type z1,
zone_type z2 
)

Merge zones. Values that are merged:

  • policy name
  • signconf filename
  • input and output adapter
Parameters
[in]z1zone
[in]z2zone with new values

Merge zones.

Definition at line 696 of file zone.c.

References zone_struct::policy_name.

◆ zone_prepare_keys()

ods_status zone_prepare_keys ( zone_type zone)

Prepare keys for signing.

Parameters
[in]zonezone
Returns
ods_status status

Prepare keys for signing.

Definition at line 394 of file zone.c.

References zone_struct::db, signconf_struct::keys, zone_struct::name, and zone_struct::signconf.

◆ zone_publish_dnskeys()

ods_status zone_publish_dnskeys ( zone_type zone,
int  skip_hsm_access 
)

Publish the keys as indicated by the signer configuration.

Parameters
[in]zonezone
Returns
ods_status status

Publish the keys as indicated by the signer configuration.

Definition at line 186 of file zone.c.

References zone_struct::db, signconf_struct::keys, zone_struct::name, and zone_struct::signconf.

Referenced by tools_input().

◆ zone_publish_nsec3param()

ods_status zone_publish_nsec3param ( zone_type zone)

Publish the NSEC3 parameters as indicated by the signer configuration.

Parameters
[in]zonezone
Returns
ods_status status

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 307 of file zone.c.

References zone_struct::db, zone_struct::name, signconf_struct::nsec3param_ttl, signconf_struct::nsec3params, signconf_struct::nsec_type, nsec3params_struct::rr, and zone_struct::signconf.

◆ zone_recover2()

ods_status zone_recover2 ( engine_type engine,
zone_type zone 
)

Recover zone from backup.

Parameters
[in]zonecorresponding zone

Recover zone from backup.

Definition at line 794 of file zone.c.

◆ zone_reschedule_task()

ods_status zone_reschedule_task ( zone_type zone,
schedule_type *  taskq,
task_id  what 
)

Reschedule task for zone.

Parameters
[in]zonezone
[in]taskqtask queue
[in]whatnew task identifier
Returns
ods_status status

◆ zone_rollback_dnskeys()

void zone_rollback_dnskeys ( zone_type zone)

◆ zone_rollback_nsec3param()

void zone_rollback_nsec3param ( zone_type zone)

Unlink NSEC3PARAM RR.

Parameters
[in]zonezone

Unlink NSEC3PARAM RR.

Definition at line 370 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().

◆ zone_update_serial()

ods_status zone_update_serial ( zone_type zone)

Update serial.

Parameters
[in]zonezone
Returns
ods_status status

Update serial.

Definition at line 436 of file zone.c.

References zone_struct::apex, zone_struct::db, zone_struct::name, namedb_struct::serial_updated, and zone_struct::signconf.