/usr/include/dns/badcache.h is in libbind-dev 1:9.11.3+dfsg-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | /*
* Copyright (C) 2014, 2016 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 http://mozilla.org/MPL/2.0/.
*/
#ifndef DNS_BADCACHE_H
#define DNS_BADCACHE_H 1
/*****
***** Module Info
*****/
/*! \file dns/badcache.h
* \brief
* Defines dns_badcache_t, the "bad cache" object.
*
* Notes:
*\li A bad cache object is a hash table of name/type tuples,
* indicating whether a given tuple known to be "bad" in some
* sense (e.g., queries for that name and type have been
* returning SERVFAIL). This is used for both the "bad server
* cache" in the resolver and for the "servfail cache" in
* the view.
*
* Reliability:
*
* Resources:
*
* Security:
*
* Standards:
*/
/***
*** Imports
***/
#include <dns/types.h>
ISC_LANG_BEGINDECLS
/***
*** Functions
***/
isc_result_t
dns_badcache_init(isc_mem_t *mctx, unsigned int size, dns_badcache_t **bcp);
/*%
* Allocate and initialize a badcache and store it in '*bcp'.
*
* Requires:
* \li mctx != NULL
* \li bcp != NULL
* \li *bcp == NULL
*/
void
dns_badcache_destroy(dns_badcache_t **bcp);
/*%
* Flush and then free badcache in 'bcp'. '*bcp' is set to NULL on return.
*
* Requires:
* \li '*bcp' to be a valid badcache
*/
void
dns_badcache_add(dns_badcache_t *bc, dns_name_t *name,
dns_rdatatype_t type, isc_boolean_t update,
isc_uint32_t flags, isc_time_t *expire);
/*%
* Adds a badcache entry to the badcache 'bc' for name 'name' and
* type 'type'. If an entry already exists, then it will be updated if
* 'update' is ISC_TRUE. The entry will be stored with flags 'flags'
* and expiration date 'expire'.
*
* Requires:
* \li bc to be a valid badcache.
* \li name != NULL
* \li expire != NULL
*/
isc_boolean_t
dns_badcache_find(dns_badcache_t *bc, dns_name_t *name,
dns_rdatatype_t type, isc_uint32_t *flagp,
isc_time_t *now);
/*%
* Returns ISC_TRUE if a record is found in the badcache 'bc' matching
* 'name' and 'type', with an expiration date later than 'now'.
* If 'flagp' is not NULL, then '*flagp' is updated to the flags
* that were stored in the badcache entry. Returns ISC_FALSE if
* no matching record is found.
*
* Requires:
* \li bc to be a valid badcache.
* \li name != NULL
* \li now != NULL
*/
void
dns_badcache_flush(dns_badcache_t *bc);
/*%
* Flush the entire bad cache.
*
* Requires:
* \li bc to be a valid badcache
*/
void
dns_badcache_flushname(dns_badcache_t *bc, dns_name_t *name);
/*%
* Flush the bad cache of all entries at 'name'.
*
* Requires:
* \li bc to be a valid badcache
* \li name != NULL
*/
void
dns_badcache_flushtree(dns_badcache_t *bc, dns_name_t *name);
/*%
* Flush the bad cache of all entries at or below 'name'.
*
* Requires:
* \li bc to be a valid badcache
* \li name != NULL
*/
void
dns_badcache_print(dns_badcache_t *bc, const char *cachename, FILE *fp);
/*%
* Print the contents of badcache 'bc' (headed by the title 'cachename')
* to file pointer 'fp'.
*
* Requires:
* \li bc to be a valid badcache
* \li cachename != NULL
* \li fp != NULL
*/
ISC_LANG_ENDDECLS
#endif /* DNS_BADCACHE_H */
|