summaryrefslogtreecommitdiff
path: root/usr.sbin/nsd/udbzone.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/nsd/udbzone.h')
-rw-r--r--usr.sbin/nsd/udbzone.h160
1 files changed, 0 insertions, 160 deletions
diff --git a/usr.sbin/nsd/udbzone.h b/usr.sbin/nsd/udbzone.h
deleted file mode 100644
index 8c5c5325581..00000000000
--- a/usr.sbin/nsd/udbzone.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * udbzone -- store zone and rrset information in udb file.
- *
- * Copyright (c) 2011, NLnet Labs. See LICENSE for license.
- */
-#ifndef UDB_ZONE_H
-#define UDB_ZONE_H
-#include "udb.h"
-#include "dns.h"
-#include "udbradtree.h"
-
-/**
- * Store the DNS information in udb file on disk.
- * udb_global
- * |
- * v
- * zonetree -> zone -- zone_name
- * radtree |--> nsec3param
- * |--> log_str
- * |--> file_str
- * |
- * v
- * domain --> rrset -> rr
- * radtree list list
- * |-- name
- */
-
-/** zone information in the nsd.udb. Name allocated after it. */
-struct zone_d {
- /** radtree node in the zonetree for this zone */
- udb_rel_ptr node;
- /** the radtree for the domain names in the zone */
- udb_rel_ptr domains;
- /** the NSEC3PARAM rr used for hashing (or 0), rr_d pointer */
- udb_rel_ptr nsec3param;
- /** the log_str for the AXFR change, or 0 */
- udb_rel_ptr log_str;
- /** the file name when read from a file, or 0 */
- udb_rel_ptr file_str;
- /** modification time, time when the zone data was changed */
- uint64_t mtime;
- /** modification time, nsecs */
- uint64_t mtime_nsec;
- /** number of RRsets in the zone */
- uint64_t rrset_count;
- /** number of RRs in the zone */
- uint64_t rr_count;
- /** the length of the zone name */
- udb_radstrlen_type namelen;
- /** if the zone is expired */
- uint8_t expired;
- /** if the zone has been changed by AXFR */
- uint8_t is_changed;
- /** the zone (wire uncompressed) name in DNS format */
- uint8_t name[0];
-};
-
-/** domain name in the nametree. name allocated after it */
-struct domain_d {
- /** radtree node in the nametree for this domain */
- udb_rel_ptr node;
- /** the list of rrsets for this name, single linked */
- udb_rel_ptr rrsets;
- /** length of the domain name */
- udb_radstrlen_type namelen;
- /** the domain (wire uncompressed) name in DNS format */
- uint8_t name[0];
-};
-
-/** rrset information. */
-struct rrset_d {
- /** next in rrset list */
- udb_rel_ptr next;
- /** the singly linked list of rrs for this rrset */
- udb_rel_ptr rrs;
- /** type of the RRs in this rrset (host order) */
- uint16_t type;
-};
-
-/** rr information; wireformat data allocated after it */
-struct rr_d {
- /** next in rr list */
- udb_rel_ptr next;
- /** type (host order) */
- uint16_t type;
- /** class (host order) */
- uint16_t klass;
- /** ttl (host order) */
- uint32_t ttl;
- /** length of wireformat */
- uint16_t len;
- /** wireformat of rdata (without rdatalen) */
- uint8_t wire[0];
-};
-
-/** init an udb for use as DNS store */
-int udb_dns_init_file(udb_base* udb);
-/** de-init an udb for use as DNS store */
-void udb_dns_deinit_file(udb_base* udb);
-
-/** create a zone */
-int udb_zone_create(udb_base* udb, udb_ptr* result, const uint8_t* dname,
- size_t dlen);
-/** clear all RRsets from a zone */
-void udb_zone_clear(udb_base* udb, udb_ptr* zone);
-/** delete a zone */
-void udb_zone_delete(udb_base* udb, udb_ptr* zone);
-/** find a zone by name (exact match) */
-int udb_zone_search(udb_base* udb, udb_ptr* result, const uint8_t* dname,
- size_t dlen);
-/** get modification time for zone or 0 */
-void udb_zone_get_mtime(udb_base* udb, const uint8_t* dname, size_t dlen,
- struct timespec* mtime);
-/** set log str in udb, or remove it */
-void udb_zone_set_log_str(udb_base* udb, udb_ptr* zone, const char* str);
-/** set file str in udb, or remove it */
-void udb_zone_set_file_str(udb_base* udb, udb_ptr* zone, const char* str);
-/** get file string for zone or NULL */
-const char* udb_zone_get_file_str(udb_base* udb, const uint8_t* dname,
- size_t dlen);
-/** find a domain name in the zone domain tree */
-int udb_domain_find(udb_base* udb, udb_ptr* zone, const uint8_t* nm,
- size_t nmlen, udb_ptr* result);
-/** find rrset in domain */
-int udb_rrset_find(udb_base* udb, udb_ptr* domain, uint16_t t, udb_ptr* res);
-
-/** add an RR to a zone */
-int udb_zone_add_rr(udb_base* udb, udb_ptr* zone, const uint8_t* nm,
- size_t nmlen, uint16_t t, uint16_t k, uint32_t ttl, uint8_t* rdata,
- size_t rdatalen);
-/** del an RR from a zone */
-void udb_zone_del_rr(udb_base* udb, udb_ptr* zone, const uint8_t* nm,
- size_t nmlen, uint16_t t, uint16_t k, uint8_t* rdata, size_t rdatalen);
-
-/** get pretty string for nsec3parameters (static buffer returned) */
-const char* udb_nsec3param_string(udb_ptr* rr);
-
-/** for use in udb-walkfunc, walks relptrs in udb_chunk_type_zone */
-void udb_zone_walk_chunk(void* base, void* d, uint64_t s,
- udb_walk_relptr_cb* cb, void* arg);
-/** for use in udb-walkfunc, walks relptrs in udb_chunk_type_domain */
-void udb_domain_walk_chunk(void* base, void* d, uint64_t s,
- udb_walk_relptr_cb* cb, void* arg);
-/** for use in udb-walkfunc, walks relptrs in udb_chunk_type_rrset */
-void udb_rrset_walk_chunk(void* base, void* d, uint64_t s,
- udb_walk_relptr_cb* cb, void* arg);
-/** for use in udb-walkfunc, walks relptrs in udb_chunk_type_rr */
-void udb_rr_walk_chunk(void* base, void* d, uint64_t s,
- udb_walk_relptr_cb* cb, void* arg);
-
-/** walk through relptrs in registered types */
-void namedb_walkfunc(void* base, void* warg, uint8_t t, void* d, uint64_t s,
- udb_walk_relptr_cb* cb, void* arg);
-
-#define ZONE(ptr) ((struct zone_d*)UDB_PTR(ptr))
-#define DOMAIN(ptr) ((struct domain_d*)UDB_PTR(ptr))
-#define RRSET(ptr) ((struct rrset_d*)UDB_PTR(ptr))
-#define RR(ptr) ((struct rr_d*)UDB_PTR(ptr))
-
-#endif /* UDB_ZONE_H */