OXIESEC PANEL
- Current Dir:
/
/
usr
/
include
/
bind9
/
dns
Server IP: 103.185.75.71
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
11/10/2025 03:35:42 AM
rwxr-xr-x
📄
acl.h
6.33 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
adb.h
21.75 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
badcache.h
3.31 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
bit.h
798 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
byaddr.h
3.51 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
cache.h
8.53 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
callbacks.h
2.23 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
catz.h
11.6 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
cert.h
1.43 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
client.h
14.19 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
clientinfo.h
1.97 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
compress.h
6.88 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
db.h
49.26 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
dbiterator.h
7.21 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dbtable.h
3.09 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
diff.h
6.87 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dispatch.h
15.17 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dlz.h
10.62 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dlz_dlopen.h
4.29 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dns64.h
5.59 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dnsrps.h
2.51 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dnssec.h
12.29 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dnstap.h
9.95 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ds.h
1.63 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dsdigest.h
1.67 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dyndb.h
4.75 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ecdb.h
806 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
ecs.h
1.22 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
edns.h
783 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
enumclass.h
1.19 KB
11/10/2025 03:34:13 AM
rw-r--r--
📄
enumtype.h
8.29 KB
11/10/2025 03:34:13 AM
rw-r--r--
📄
events.h
4.35 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
fixedname.h
1.61 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
forward.h
2.99 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
geoip.h
2.29 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ipkeylist.h
2.17 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
iptable.h
1.49 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
journal.h
9.48 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
kasp.h
11.84 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keydata.h
1.02 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keyflags.h
1.25 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keymgr.h
4.01 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keytable.h
7.69 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keyvalues.h
3.99 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
lib.h
993 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
librpz.h
30.67 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
lmdb.h
779 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
log.h
3.93 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
lookup.h
2.85 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
master.h
8.58 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
masterdump.h
9.9 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
message.h
38.64 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
name.h
36.9 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
ncache.h
4.84 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
nsec.h
2.99 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
nsec3.h
8.06 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
nta.h
4.73 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
opcode.h
1006 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
order.h
1.96 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
peer.h
6.32 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
portlist.h
2.05 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
private.h
1.92 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rbt.h
36.61 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
rcode.h
2.41 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdata.h
22.04 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdataclass.h
2.2 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdatalist.h
2.5 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdataset.h
18.28 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
rdatasetiter.h
3.82 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdataslab.h
4.14 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
rdatastruct.h
61.23 KB
11/10/2025 03:34:13 AM
rw-r--r--
📄
rdatatype.h
2.24 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
request.h
8.97 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
resolver.h
19.68 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
result.h
8.98 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rootns.h
891 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
rpz.h
11.87 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rriterator.h
4.12 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rrl.h
6.8 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
sdb.h
7.18 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
sdlz.h
13.76 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
secalg.h
1.67 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
secproto.h
1.52 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
soa.h
2.13 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ssu.h
7.01 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
stats.h
24.11 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tcpmsg.h
3.05 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
time.h
1.65 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
timer.h
1.03 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tkey.h
7.48 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tsec.h
2.88 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tsig.h
8.3 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ttl.h
1.83 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
types.h
14.19 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
update.h
1.96 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
validator.h
6.52 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
version.h
679 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
view.h
34.51 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
xfrin.h
2.26 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
zone.h
64.01 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
zonekey.h
776 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
zoneverify.h
1.36 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
zt.h
5.12 KB
11/10/2025 03:33:48 AM
rw-r--r--
Editing: dbiterator.h
Close
/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef DNS_DBITERATOR_H #define DNS_DBITERATOR_H 1 /***** ***** Module Info *****/ /*! \file dns/dbiterator.h * \brief * The DNS DB Iterator interface allows iteration of all of the nodes in a * database. * * The dns_dbiterator_t type is like a "virtual class". To actually use * it, an implementation of the class is required. This implementation is * supplied by the database. * * It is the client's responsibility to call dns_db_detachnode() on all * nodes returned. * * XXX <more> XXX * * MP: *\li The iterator itself is not locked. The caller must ensure * synchronization. * *\li The iterator methods ensure appropriate database locking. * * Reliability: *\li No anticipated impact. * * Resources: *\li TBS * * Security: *\li No anticipated impact. * * Standards: *\li None. */ /***** ***** Imports *****/ #include <stdbool.h> #include <isc/lang.h> #include <isc/magic.h> #include <dns/types.h> ISC_LANG_BEGINDECLS /***** ***** Types *****/ typedef struct dns_dbiteratormethods { void (*destroy)(dns_dbiterator_t **iteratorp); isc_result_t (*first)(dns_dbiterator_t *iterator); isc_result_t (*last)(dns_dbiterator_t *iterator); isc_result_t (*seek)(dns_dbiterator_t *iterator, const dns_name_t *name); isc_result_t (*prev)(dns_dbiterator_t *iterator); isc_result_t (*next)(dns_dbiterator_t *iterator); isc_result_t (*current)(dns_dbiterator_t *iterator, dns_dbnode_t **nodep, dns_name_t *name); isc_result_t (*pause)(dns_dbiterator_t *iterator); isc_result_t (*origin)(dns_dbiterator_t *iterator, dns_name_t *name); } dns_dbiteratormethods_t; #define DNS_DBITERATOR_MAGIC ISC_MAGIC('D', 'N', 'S', 'I') #define DNS_DBITERATOR_VALID(dbi) ISC_MAGIC_VALID(dbi, DNS_DBITERATOR_MAGIC) /*% * This structure is actually just the common prefix of a DNS db * implementation's version of a dns_dbiterator_t. * * Clients may use the 'db' field of this structure. Except for that field, * direct use of this structure by clients is forbidden. DB implementations * may change the structure. 'magic' must be DNS_DBITERATOR_MAGIC for any of * the dns_dbiterator routines to work. DB iterator implementations must * maintain all DB iterator invariants. */ struct dns_dbiterator { /* Unlocked. */ unsigned int magic; dns_dbiteratormethods_t *methods; dns_db_t *db; bool relative_names; bool cleaning; }; void dns_dbiterator_destroy(dns_dbiterator_t **iteratorp); /*%< * Destroy '*iteratorp'. * * Requires: * *\li '*iteratorp' is a valid iterator. * * Ensures: * *\li All resources used by the iterator are freed. * *\li *iteratorp == NULL. */ isc_result_t dns_dbiterator_first(dns_dbiterator_t *iterator); /*%< * Move the node cursor to the first node in the database (if any). * * Requires: *\li 'iterator' is a valid iterator. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMORE There are no nodes in the database. * *\li Other results are possible, depending on the DB implementation. */ isc_result_t dns_dbiterator_last(dns_dbiterator_t *iterator); /*%< * Move the node cursor to the last node in the database (if any). * * Requires: *\li 'iterator' is a valid iterator. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMORE There are no nodes in the database. * *\li Other results are possible, depending on the DB implementation. */ isc_result_t dns_dbiterator_seek(dns_dbiterator_t *iterator, const dns_name_t *name); /*%< * Move the node cursor to the node with name 'name'. * * Requires: *\li 'iterator' is a valid iterator. * *\li 'name' is a valid name. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOTFOUND *\li #DNS_R_PARTIALMATCH * (node is at name above requested named when name has children) * *\li Other results are possible, depending on the DB implementation. */ isc_result_t dns_dbiterator_prev(dns_dbiterator_t *iterator); /*%< * Move the node cursor to the previous node in the database (if any). * * Requires: *\li 'iterator' is a valid iterator. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMORE There are no more nodes in the * database. * *\li Other results are possible, depending on the DB implementation. */ isc_result_t dns_dbiterator_next(dns_dbiterator_t *iterator); /*%< * Move the node cursor to the next node in the database (if any). * * Requires: *\li 'iterator' is a valid iterator. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMORE There are no more nodes in the * database. * *\li Other results are possible, depending on the DB implementation. */ isc_result_t dns_dbiterator_current(dns_dbiterator_t *iterator, dns_dbnode_t **nodep, dns_name_t *name); /*%< * Return the current node. * * Notes: *\li If 'name' is not NULL, it will be set to the name of the node. * * Requires: *\li 'iterator' is a valid iterator. * *\li nodep != NULL && *nodep == NULL * *\li The node cursor of 'iterator' is at a valid location (i.e. the * result of last call to a cursor movement command was ISC_R_SUCCESS). * *\li 'name' is NULL, or is a valid name with a dedicated buffer. * * Returns: * *\li #ISC_R_SUCCESS *\li #DNS_R_NEWORIGIN If this iterator was created * with 'relative_names' set to true, then #DNS_R_NEWORIGIN will be returned *when * the origin the names are relative to changes. This result can occur only *when *'name' is not NULL. This is also a successful result. * *\li Other results are possible, depending on the DB implementation. */ isc_result_t dns_dbiterator_pause(dns_dbiterator_t *iterator); /*%< * Pause iteration. * * Calling a cursor movement method or dns_dbiterator_current() may cause * database locks to be acquired. Rather than reacquire these locks every * time one of these routines is called, the locks may simply be held. * Calling dns_dbiterator_pause() releases any such locks. Iterator clients * should call this routine any time they are not going to execute another * iterator method in the immediate future. * * Requires: *\li 'iterator' is a valid iterator. * * Ensures: *\li Any database locks being held for efficiency of iterator access are * released. * * Returns: *\li #ISC_R_SUCCESS * *\li Other results are possible, depending on the DB implementation. */ isc_result_t dns_dbiterator_origin(dns_dbiterator_t *iterator, dns_name_t *name); /*%< * Return the origin to which returned node names are relative. * * Requires: * *\li 'iterator' is a valid relative_names iterator. * *\li 'name' is a valid name with a dedicated buffer. * * Returns: * *\li #ISC_R_SUCCESS *\li #ISC_R_NOSPACE * *\li Other results are possible, depending on the DB implementation. */ void dns_dbiterator_setcleanmode(dns_dbiterator_t *iterator, bool mode); /*%< * Indicate that the given iterator is/is not cleaning the DB. * * Notes: *\li When 'mode' is true, * * Requires: *\li 'iterator' is a valid iterator. */ ISC_LANG_ENDDECLS #endif /* DNS_DBITERATOR_H */