summaryrefslogtreecommitdiff
path: root/usr.sbin/nsd/udbzone.h
diff options
context:
space:
mode:
authorFlorian Obser <florian@cvs.openbsd.org>2016-06-24 08:34:04 +0000
committerFlorian Obser <florian@cvs.openbsd.org>2016-06-24 08:34:04 +0000
commite32f6a20a2ff7a7d1cb5de93dc9992dca7e22c1b (patch)
tree75e3afdf4a86d6326847253868adecc8251bbaac /usr.sbin/nsd/udbzone.h
parente547a96bfd6a3f56adf58b726d52318df7c307e7 (diff)
Update to 4.1.10
Testing by millert@, sthen@ and me. came up with the same diff & OK sthen@
Diffstat (limited to 'usr.sbin/nsd/udbzone.h')
-rw-r--r--usr.sbin/nsd/udbzone.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/usr.sbin/nsd/udbzone.h b/usr.sbin/nsd/udbzone.h
index f1163e4dfe5..8169857a795 100644
--- a/usr.sbin/nsd/udbzone.h
+++ b/usr.sbin/nsd/udbzone.h
@@ -15,7 +15,10 @@
* |
* v
* zonetree -> zone -- zone_name
- * radtree |
+ * radtree |--> nsec3param
+ * |--> log_str
+ * |--> file_str
+ * |
* v
* domain --> rrset -> rr
* radtree list list
@@ -32,8 +35,12 @@ struct zone_d {
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 */
@@ -102,9 +109,15 @@ void udb_zone_delete(udb_base* udb, udb_ptr* zone);
int udb_zone_search(udb_base* udb, udb_ptr* result, const uint8_t* dname,
size_t dlen);
/** get modification time for zone or 0 */
-uint64_t udb_zone_get_mtime(udb_base* udb, const uint8_t* dname, size_t dlen);
+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);