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: compress.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_COMPRESS_H #define DNS_COMPRESS_H 1 #include <inttypes.h> #include <stdbool.h> #include <isc/lang.h> #include <isc/region.h> #include <dns/name.h> #include <dns/types.h> ISC_LANG_BEGINDECLS /*! \file dns/compress.h * Direct manipulation of the structures is strongly discouraged. * * A name compression context handles compression of multiple DNS names * in relation to a single DNS message. The context can be used to * selectively turn on/off compression for specific names (depending on * the RR type) by using \c dns_compress_setmethods(). Alternately, * compression can be disabled completely using \c * dns_compress_disable(). * * \c dns_compress_setmethods() is intended for use by RDATA towire() * implementations, whereas \c dns_compress_disable() is intended to be * used by a nameserver's configuration manager. */ #define DNS_COMPRESS_NONE 0x00 /*%< no compression */ #define DNS_COMPRESS_GLOBAL14 0x01 /*%< "normal" compression. */ #define DNS_COMPRESS_ALL 0x01 /*%< all compression. */ #define DNS_COMPRESS_CASESENSITIVE 0x02 /*%< case sensitive compression. */ #define DNS_COMPRESS_ENABLED 0x04 /* * DNS_COMPRESS_TABLESIZE must be a power of 2. The compress code * utilizes this assumption. */ #define DNS_COMPRESS_TABLEBITS 6 #define DNS_COMPRESS_TABLESIZE (1U << DNS_COMPRESS_TABLEBITS) #define DNS_COMPRESS_TABLEMASK (DNS_COMPRESS_TABLESIZE - 1) #define DNS_COMPRESS_INITIALNODES 24 #define DNS_COMPRESS_ARENA_SIZE 640 typedef struct dns_compressnode dns_compressnode_t; struct dns_compressnode { dns_compressnode_t *next; uint16_t offset; uint16_t count; isc_region_t r; dns_name_t name; }; struct dns_compress { unsigned int magic; /*%< Magic number. */ unsigned int allowed; /*%< Allowed methods. */ int edns; /*%< Edns version or -1. */ /*% Global compression table. */ dns_compressnode_t *table[DNS_COMPRESS_TABLESIZE]; /*% Preallocated arena for names. */ unsigned char arena[DNS_COMPRESS_ARENA_SIZE]; off_t arena_off; /*% Preallocated nodes for the table. */ dns_compressnode_t initialnodes[DNS_COMPRESS_INITIALNODES]; uint16_t count; /*%< Number of nodes. */ isc_mem_t *mctx; /*%< Memory context. */ }; typedef enum { DNS_DECOMPRESS_ANY, /*%< Any compression */ DNS_DECOMPRESS_STRICT, /*%< Allowed compression */ DNS_DECOMPRESS_NONE /*%< No compression */ } dns_decompresstype_t; struct dns_decompress { unsigned int magic; /*%< Magic number. */ unsigned int allowed; /*%< Allowed methods. */ int edns; /*%< Edns version or -1. */ dns_decompresstype_t type; /*%< Strict checking */ }; isc_result_t dns_compress_init(dns_compress_t *cctx, int edns, isc_mem_t *mctx); /*%< * Initialise the compression context structure pointed to by * 'cctx'. A freshly initialized context has name compression * enabled, but no methods are set. Please use \c * dns_compress_setmethods() to set a compression method. * * Requires: * \li 'cctx' is a valid dns_compress_t structure. * \li 'mctx' is an initialized memory context. * Ensures: * \li cctx->global is initialized. * * Returns: * \li #ISC_R_SUCCESS */ void dns_compress_invalidate(dns_compress_t *cctx); /*%< * Invalidate the compression structure pointed to by cctx. * * Requires: *\li 'cctx' to be initialized. */ void dns_compress_setmethods(dns_compress_t *cctx, unsigned int allowed); /*%< * Sets allowed compression methods. * * Requires: *\li 'cctx' to be initialized. */ unsigned int dns_compress_getmethods(dns_compress_t *cctx); /*%< * Gets allowed compression methods. * * Requires: *\li 'cctx' to be initialized. * * Returns: *\li allowed compression bitmap. */ void dns_compress_disable(dns_compress_t *cctx); /*%< * Disables all name compression in the context. Once disabled, * name compression cannot currently be re-enabled. * * Requires: *\li 'cctx' to be initialized. * */ void dns_compress_setsensitive(dns_compress_t *cctx, bool sensitive); /* * Preserve the case of compressed domain names. * * Requires: * 'cctx' to be initialized. */ bool dns_compress_getsensitive(dns_compress_t *cctx); /* * Return whether case is to be preserved when compressing * domain names. * * Requires: * 'cctx' to be initialized. */ int dns_compress_getedns(dns_compress_t *cctx); /*%< * Gets edns value. * * Requires: *\li 'cctx' to be initialized. * * Returns: *\li -1 .. 255 */ bool dns_compress_findglobal(dns_compress_t *cctx, const dns_name_t *name, dns_name_t *prefix, uint16_t *offset); /*%< * Finds longest possible match of 'name' in the global compression table. * * Requires: *\li 'cctx' to be initialized. *\li 'name' to be a absolute name. *\li 'prefix' to be initialized. *\li 'offset' to point to an uint16_t. * * Ensures: *\li 'prefix' and 'offset' are valid if true is returned. * * Returns: *\li #true / #false */ void dns_compress_add(dns_compress_t *cctx, const dns_name_t *name, const dns_name_t *prefix, uint16_t offset); /*%< * Add compression pointers for 'name' to the compression table, * not replacing existing pointers. * * Requires: *\li 'cctx' initialized * *\li 'name' must be initialized and absolute, and must remain * valid until the message compression is complete. * *\li 'prefix' must be a prefix returned by * dns_compress_findglobal(), or the same as 'name'. */ void dns_compress_rollback(dns_compress_t *cctx, uint16_t offset); /*%< * Remove any compression pointers from global table >= offset. * * Requires: *\li 'cctx' is initialized. */ void dns_decompress_init(dns_decompress_t *dctx, int edns, dns_decompresstype_t type); /*%< * Initializes 'dctx'. * Records 'edns' and 'type' into the structure. * * Requires: *\li 'dctx' to be a valid pointer. */ void dns_decompress_invalidate(dns_decompress_t *dctx); /*%< * Invalidates 'dctx'. * * Requires: *\li 'dctx' to be initialized */ void dns_decompress_setmethods(dns_decompress_t *dctx, unsigned int allowed); /*%< * Sets 'dctx->allowed' to 'allowed'. * * Requires: *\li 'dctx' to be initialized */ unsigned int dns_decompress_getmethods(dns_decompress_t *dctx); /*%< * Returns 'dctx->allowed' * * Requires: *\li 'dctx' to be initialized */ int dns_decompress_edns(dns_decompress_t *dctx); /*%< * Returns 'dctx->edns' * * Requires: *\li 'dctx' to be initialized */ dns_decompresstype_t dns_decompress_type(dns_decompress_t *dctx); /*%< * Returns 'dctx->type' * * Requires: *\li 'dctx' to be initialized */ ISC_LANG_ENDDECLS #endif /* DNS_COMPRESS_H */