/usr/include/dns/forward.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 | /*
* Copyright (C) 2000, 2001, 2004-2007, 2009, 2013, 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_FORWARD_H
#define DNS_FORWARD_H 1
/*! \file dns/forward.h */
#include <isc/lang.h>
#include <isc/result.h>
#include <isc/sockaddr.h>
#include <dns/types.h>
ISC_LANG_BEGINDECLS
struct dns_forwarder {
isc_sockaddr_t addr;
isc_dscp_t dscp;
ISC_LINK(dns_forwarder_t) link;
};
typedef ISC_LIST(struct dns_forwarder) dns_forwarderlist_t;
struct dns_forwarders {
dns_forwarderlist_t fwdrs;
dns_fwdpolicy_t fwdpolicy;
};
isc_result_t
dns_fwdtable_create(isc_mem_t *mctx, dns_fwdtable_t **fwdtablep);
/*%<
* Creates a new forwarding table.
*
* Requires:
* \li mctx is a valid memory context.
* \li fwdtablep != NULL && *fwdtablep == NULL
*
* Returns:
* \li #ISC_R_SUCCESS
* \li #ISC_R_NOMEMORY
*/
isc_result_t
dns_fwdtable_addfwd(dns_fwdtable_t *fwdtable, dns_name_t *name,
dns_forwarderlist_t *fwdrs, dns_fwdpolicy_t policy);
isc_result_t
dns_fwdtable_add(dns_fwdtable_t *fwdtable, dns_name_t *name,
isc_sockaddrlist_t *addrs, dns_fwdpolicy_t policy);
/*%<
* Adds an entry to the forwarding table. The entry associates
* a domain with a list of forwarders and a forwarding policy. The
* addrs/fwdrs list is copied if not empty, so the caller should free
* its copy.
*
* Requires:
* \li fwdtable is a valid forwarding table.
* \li name is a valid name
* \li addrs/fwdrs is a valid list of isc_sockaddr/dns_forwarder
* structures, which may be empty.
*
* Returns:
* \li #ISC_R_SUCCESS
* \li #ISC_R_NOMEMORY
*/
isc_result_t
dns_fwdtable_delete(dns_fwdtable_t *fwdtable, dns_name_t *name);
/*%<
* Removes an entry for 'name' from the forwarding table. If an entry
* that exactly matches 'name' does not exist, ISC_R_NOTFOUND will be returned.
*
* Requires:
* \li fwdtable is a valid forwarding table.
* \li name is a valid name
*
* Returns:
* \li #ISC_R_SUCCESS
* \li #ISC_R_NOTFOUND
*/
isc_result_t
dns_fwdtable_find(dns_fwdtable_t *fwdtable, dns_name_t *name,
dns_forwarders_t **forwardersp);
/*%<
* Finds a domain in the forwarding table. The closest matching parent
* domain is returned.
*
* Requires:
* \li fwdtable is a valid forwarding table.
* \li name is a valid name
* \li forwardersp != NULL && *forwardersp == NULL
*
* Returns:
* \li #ISC_R_SUCCESS
* \li #ISC_R_NOTFOUND
*/
isc_result_t
dns_fwdtable_find2(dns_fwdtable_t *fwdtable, dns_name_t *name,
dns_name_t *foundname, dns_forwarders_t **forwardersp);
/*%<
* Finds a domain in the forwarding table. The closest matching parent
* domain is returned.
*
* Requires:
* \li fwdtable is a valid forwarding table.
* \li name is a valid name
* \li forwardersp != NULL && *forwardersp == NULL
* \li foundname to be NULL or a valid name with buffer.
*
* Returns:
* \li #ISC_R_SUCCESS
* \li #ISC_R_NOTFOUND
*/
void
dns_fwdtable_destroy(dns_fwdtable_t **fwdtablep);
/*%<
* Destroys a forwarding table.
*
* Requires:
* \li fwtablep != NULL && *fwtablep != NULL
*
* Ensures:
* \li all memory associated with the forwarding table is freed.
*/
ISC_LANG_ENDDECLS
#endif /* DNS_FORWARD_H */
|