/usr/include/bind9/dns
NameSizeModeActions
acache.h142320644editdlrm
acl.h72420644editdlrm
adb.h225950644editdlrm
badcache.h33690644editdlrm
bit.h8070644editdlrm
byaddr.h40020644editdlrm
cache.h86430644editdlrm
callbacks.h22710644editdlrm
catz.h118330644editdlrm
cert.h14660644editdlrm
client.h220420644editdlrm
clientinfo.h20060644editdlrm
compress.h66460644editdlrm
db.h470610644editdlrm
dbiterator.h74220644editdlrm
dbtable.h31650644editdlrm
diff.h69800644editdlrm
dispatch.h164270644editdlrm
dlz.h106180644editdlrm
dlz_dlopen.h46770644editdlrm
dns64.h56350644editdlrm
dnssec.h123710644editdlrm
dnstap.h93640644editdlrm
ds.h12250644editdlrm
dsdigest.h17220644editdlrm
dyndb.h48350644editdlrm
ecdb.h8090644editdlrm
edns.h7220644editdlrm
enumclass.h12200644editdlrm
enumtype.h83000644editdlrm
events.h40590644editdlrm
fixedname.h16630644editdlrm
forward.h34520644editdlrm
geoip.h27920644editdlrm
ipkeylist.h21860644editdlrm
iptable.h16210644editdlrm
journal.h82270644editdlrm
keydata.h10590644editdlrm
keyflags.h12780644editdlrm
keytable.h94620644editdlrm
keyvalues.h41590644editdlrm
lib.h11920644editdlrm
log.h39640644editdlrm
lookup.h29240644editdlrm
master.h112890644editdlrm
masterdump.h126470644editdlrm
message.h390230644editdlrm
name.h371150644editdlrm
ncache.h49290644editdlrm
nsec.h33970644editdlrm
nsec3.h80320644editdlrm
nta.h45480644editdlrm
opcode.h10070644editdlrm
order.h19990644editdlrm
peer.h59660644editdlrm
portlist.h21010644editdlrm
private.h19350644editdlrm
rbt.h406180644editdlrm
rcode.h24810644editdlrm
rdata.h216130644editdlrm
rdataclass.h22570644editdlrm
rdatalist.h25690644editdlrm
rdataset.h215360644editdlrm
rdatasetiter.h39260644editdlrm
rdataslab.h45280644editdlrm
rdatastruct.h615840644editdlrm
rdatatype.h22980644editdlrm
request.h111560644editdlrm
resolver.h202270644editdlrm
result.h92840644editdlrm
rootns.h8920644editdlrm
rpz.h103350644editdlrm
rriterator.h42300644editdlrm
rrl.h66400644editdlrm
sdb.h72240644editdlrm
sdlz.h142140644editdlrm
secalg.h17060644editdlrm
secproto.h15570644editdlrm
soa.h21860644editdlrm
ssu.h83080644editdlrm
stats.h134510644editdlrm
tcpmsg.h31450644editdlrm
time.h16950644editdlrm
timer.h10510644editdlrm
tkey.h76310644editdlrm
tsec.h29490644editdlrm
tsig.h83840644editdlrm
ttl.h19450644editdlrm
types.h142120644editdlrm
update.h16530644editdlrm
validator.h71610644editdlrm
version.h8680644editdlrm
view.h352740644editdlrm
xfrin.h29240644editdlrm
zone.h608640644editdlrm
zonekey.h7770644editdlrm
zt.h55620644editdlrm
Edit: /usr/include/bind9/dns/rdataslab.h (4528B)
/* * 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_RDATASLAB_H #define DNS_RDATASLAB_H 1 /*! \file dns/rdataslab.h * \brief * Implements storage of rdatasets into slabs of memory. * * MP: *\li Clients of this module must impose any required synchronization. * * Reliability: *\li This module deals with low-level byte streams. Errors in any of * the functions are likely to crash the server or corrupt memory. * *\li If the caller passes invalid memory references, these functions are * likely to crash the server or corrupt memory. * * Resources: *\li None. * * Security: *\li None. * * Standards: *\li None. */ /*** *** Imports ***/ #include #include #include #include ISC_LANG_BEGINDECLS #define DNS_RDATASLAB_FORCE 0x1 #define DNS_RDATASLAB_EXACT 0x2 #define DNS_RDATASLAB_OFFLINE 0x01 /* RRSIG is for offline DNSKEY */ #define DNS_RDATASLAB_WARNMASK 0x0E /*%< RRSIG(DNSKEY) expired * warnings number mask. */ #define DNS_RDATASLAB_WARNSHIFT 1 /*%< How many bits to shift to find * remaining expired warning number. */ /*** *** Functions ***/ isc_result_t dns_rdataslab_fromrdataset(dns_rdataset_t *rdataset, isc_mem_t *mctx, isc_region_t *region, unsigned int reservelen); /*%< * Slabify a rdataset. The slab area will be allocated and returned * in 'region'. * * Requires: *\li 'rdataset' is valid. * * Ensures: *\li 'region' will have base pointing to the start of allocated memory, * with the slabified region beginning at region->base + reservelen. * region->length contains the total length allocated. * * Returns: *\li ISC_R_SUCCESS - successful completion *\li ISC_R_NOMEMORY - no memory. *\li XXX others */ void dns_rdataslab_tordataset(unsigned char *slab, unsigned int reservelen, dns_rdataclass_t rdclass, dns_rdatatype_t rdtype, dns_rdatatype_t covers, dns_ttl_t ttl, dns_rdataset_t *rdataset); /*%< * Construct an rdataset from a slab. * * Requires: *\li 'slab' points to a slab. *\li 'rdataset' is disassociated. * * Ensures: *\li 'rdataset' is associated and points to a valid rdataest. */ unsigned int dns_rdataslab_size(unsigned char *slab, unsigned int reservelen); /*%< * Return the total size of an rdataslab. * * Requires: *\li 'slab' points to a slab. * * Returns: *\li The number of bytes in the slab, including the reservelen. */ unsigned int dns_rdataslab_count(unsigned char *slab, unsigned int reservelen); /*%< * Return the number of records in the rdataslab * * Requires: *\li 'slab' points to a slab. * * Returns: *\li The number of records in the slab. */ isc_result_t dns_rdataslab_merge(unsigned char *oslab, unsigned char *nslab, unsigned int reservelen, isc_mem_t *mctx, dns_rdataclass_t rdclass, dns_rdatatype_t type, unsigned int flags, unsigned char **tslabp); /*%< * Merge 'oslab' and 'nslab'. */ isc_result_t dns_rdataslab_subtract(unsigned char *mslab, unsigned char *sslab, unsigned int reservelen, isc_mem_t *mctx, dns_rdataclass_t rdclass, dns_rdatatype_t type, unsigned int flags, unsigned char **tslabp); /*%< * Subtract 'sslab' from 'mslab'. If 'exact' is true then all elements * of 'sslab' must exist in 'mslab'. * * XXX * valid flags are DNS_RDATASLAB_EXACT */ bool dns_rdataslab_equal(unsigned char *slab1, unsigned char *slab2, unsigned int reservelen); /*%< * Compare two rdataslabs for equality. This does _not_ do a full * DNSSEC comparison. * * Requires: *\li 'slab1' and 'slab2' point to slabs. * * Returns: *\li true if the slabs are equal, false otherwise. */ bool dns_rdataslab_equalx(unsigned char *slab1, unsigned char *slab2, unsigned int reservelen, dns_rdataclass_t rdclass, dns_rdatatype_t type); /*%< * Compare two rdataslabs for DNSSEC equality. * * Requires: *\li 'slab1' and 'slab2' point to slabs. * * Returns: *\li true if the slabs are equal, #false otherwise. */ void dns_rdataslab_setmaxrrperset(uint32_t maxrrperset); /*%< * Set global limit of max-records-per-type value. */ ISC_LANG_ENDDECLS #endif /* DNS_RDATASLAB_H */