/usr/include/dns/master.h is in libbind-dev 1:9.9.5.dfsg-9+deb8u15.
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 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 | /*
* Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id$ */
#ifndef DNS_MASTER_H
#define DNS_MASTER_H 1
/*! \file dns/master.h */
/***
*** Imports
***/
#include <stdio.h>
#include <isc/lang.h>
#include <dns/types.h>
/*
* Flags to be passed in the 'options' argument in the functions below.
*/
#define DNS_MASTER_AGETTL 0x00000001 /*%< Age the ttl based on $DATE. */
#define DNS_MASTER_MANYERRORS 0x00000002 /*%< Continue processing on errors. */
#define DNS_MASTER_NOINCLUDE 0x00000004 /*%< Disallow $INCLUDE directives. */
#define DNS_MASTER_ZONE 0x00000008 /*%< Loading a zone master file. */
#define DNS_MASTER_HINT 0x00000010 /*%< Loading a hint master file. */
#define DNS_MASTER_SLAVE 0x00000020 /*%< Loading a slave master file. */
#define DNS_MASTER_CHECKNS 0x00000040 /*%<
* Check NS records to see
* if they are an address
*/
#define DNS_MASTER_FATALNS 0x00000080 /*%<
* Treat DNS_MASTER_CHECKNS
* matches as fatal
*/
#define DNS_MASTER_CHECKNAMES 0x00000100
#define DNS_MASTER_CHECKNAMESFAIL 0x00000200
#define DNS_MASTER_CHECKWILDCARD 0x00000400 /* Check for internal wildcards. */
#define DNS_MASTER_CHECKMX 0x00000800
#define DNS_MASTER_CHECKMXFAIL 0x00001000
#define DNS_MASTER_RESIGN 0x00002000
#define DNS_MASTER_KEY 0x00004000 /*%< Loading a key zone master file. */
#define DNS_MASTER_NOTTL 0x00008000 /*%< Don't require ttl. */
ISC_LANG_BEGINDECLS
/*
* Structures that implement the "raw" format for master dump.
* These are provided for a reference purpose only; in the actual
* encoding, we directly read/write each field so that the encoded data
* is always "packed", regardless of the hardware architecture.
*/
#define DNS_RAWFORMAT_VERSION 1
/*
* Flags to indicate the status of the data in the raw file header
*/
#define DNS_MASTERRAW_COMPAT 0x01
#define DNS_MASTERRAW_SOURCESERIALSET 0x02
#define DNS_MASTERRAW_LASTXFRINSET 0x04
/* Common header */
struct dns_masterrawheader {
isc_uint32_t format; /* must be
* dns_masterformat_raw */
isc_uint32_t version; /* compatibility for future
* extensions */
isc_uint32_t dumptime; /* timestamp on creation
* (currently unused) */
isc_uint32_t flags; /* Flags */
isc_uint32_t sourceserial; /* Source serial number (used
* by inline-signing zones) */
isc_uint32_t lastxfrin; /* timestamp of last transfer
* (used by slave zones) */
};
/* The structure for each RRset */
typedef struct {
isc_uint32_t totallen; /* length of the data for this
* RRset, including the
* "header" part */
dns_rdataclass_t rdclass; /* 16-bit class */
dns_rdatatype_t type; /* 16-bit type */
dns_rdatatype_t covers; /* same as type */
dns_ttl_t ttl; /* 32-bit TTL */
isc_uint32_t nrdata; /* number of RRs in this set */
/* followed by encoded owner name, and then rdata */
} dns_masterrawrdataset_t;
/***
*** Function
***/
isc_result_t
dns_master_loadfile(const char *master_file,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_mem_t *mctx);
isc_result_t
dns_master_loadfile2(const char *master_file,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_mem_t *mctx,
dns_masterformat_t format);
isc_result_t
dns_master_loadfile3(const char *master_file,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
isc_uint32_t resign,
dns_rdatacallbacks_t *callbacks,
isc_mem_t *mctx,
dns_masterformat_t format);
isc_result_t
dns_master_loadstream(FILE *stream,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_mem_t *mctx);
isc_result_t
dns_master_loadbuffer(isc_buffer_t *buffer,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_mem_t *mctx);
isc_result_t
dns_master_loadlexer(isc_lex_t *lex,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_mem_t *mctx);
isc_result_t
dns_master_loadfileinc(const char *master_file,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_task_t *task,
dns_loaddonefunc_t done, void *done_arg,
dns_loadctx_t **ctxp, isc_mem_t *mctx);
isc_result_t
dns_master_loadfileinc2(const char *master_file,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_task_t *task,
dns_loaddonefunc_t done, void *done_arg,
dns_loadctx_t **ctxp, isc_mem_t *mctx,
dns_masterformat_t format);
isc_result_t
dns_master_loadfileinc3(const char *master_file,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
isc_uint32_t resign,
dns_rdatacallbacks_t *callbacks,
isc_task_t *task,
dns_loaddonefunc_t done, void *done_arg,
dns_loadctx_t **ctxp, isc_mem_t *mctx,
dns_masterformat_t format);
isc_result_t
dns_master_loadstreaminc(FILE *stream,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_task_t *task,
dns_loaddonefunc_t done, void *done_arg,
dns_loadctx_t **ctxp, isc_mem_t *mctx);
isc_result_t
dns_master_loadbufferinc(isc_buffer_t *buffer,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_task_t *task,
dns_loaddonefunc_t done, void *done_arg,
dns_loadctx_t **ctxp, isc_mem_t *mctx);
isc_result_t
dns_master_loadlexerinc(isc_lex_t *lex,
dns_name_t *top,
dns_name_t *origin,
dns_rdataclass_t zclass,
unsigned int options,
dns_rdatacallbacks_t *callbacks,
isc_task_t *task,
dns_loaddonefunc_t done, void *done_arg,
dns_loadctx_t **ctxp, isc_mem_t *mctx);
/*%<
* Loads a RFC1305 master file from a file, stream, buffer, or existing
* lexer into rdatasets and then calls 'callbacks->commit' to commit the
* rdatasets. Rdata memory belongs to dns_master_load and will be
* reused / released when the callback completes. dns_load_master will
* abort if callbacks->commit returns any value other than ISC_R_SUCCESS.
*
* If 'DNS_MASTER_AGETTL' is set and the master file contains one or more
* $DATE directives, the TTLs of the data will be aged accordingly.
*
* 'callbacks->commit' is assumed to call 'callbacks->error' or
* 'callbacks->warn' to generate any error messages required.
*
* 'done' is called with 'done_arg' and a result code when the loading
* is completed or has failed. If the initial setup fails 'done' is
* not called.
*
* 'resign' the number of seconds before a RRSIG expires that it should
* be re-signed. 0 is used if not provided.
*
* Requires:
*\li 'master_file' points to a valid string.
*\li 'lexer' points to a valid lexer.
*\li 'top' points to a valid name.
*\li 'origin' points to a valid name.
*\li 'callbacks->commit' points to a valid function.
*\li 'callbacks->error' points to a valid function.
*\li 'callbacks->warn' points to a valid function.
*\li 'mctx' points to a valid memory context.
*\li 'task' and 'done' to be valid.
*\li 'lmgr' to be valid.
*\li 'ctxp != NULL && ctxp == NULL'.
*
* Returns:
*\li ISC_R_SUCCESS upon successfully loading the master file.
*\li ISC_R_SEENINCLUDE upon successfully loading the master file with
* a $INCLUDE statement.
*\li ISC_R_NOMEMORY out of memory.
*\li ISC_R_UNEXPECTEDEND expected to be able to read a input token and
* there was not one.
*\li ISC_R_UNEXPECTED
*\li DNS_R_NOOWNER failed to specify a ownername.
*\li DNS_R_NOTTL failed to specify a ttl.
*\li DNS_R_BADCLASS record class did not match zone class.
*\li DNS_R_CONTINUE load still in progress (dns_master_load*inc() only).
*\li Any dns_rdata_fromtext() error code.
*\li Any error code from callbacks->commit().
*/
void
dns_loadctx_detach(dns_loadctx_t **ctxp);
/*%<
* Detach from the load context.
*
* Requires:
*\li '*ctxp' to be valid.
*
* Ensures:
*\li '*ctxp == NULL'
*/
void
dns_loadctx_attach(dns_loadctx_t *source, dns_loadctx_t **target);
/*%<
* Attach to the load context.
*
* Requires:
*\li 'source' to be valid.
*\li 'target != NULL && *target == NULL'.
*/
void
dns_loadctx_cancel(dns_loadctx_t *ctx);
/*%<
* Cancel loading the zone file associated with this load context.
*
* Requires:
*\li 'ctx' to be valid
*/
void
dns_master_initrawheader(dns_masterrawheader_t *header);
/*%<
* Initializes the header for a raw master file, setting all
* values to zero.
*/
ISC_LANG_ENDDECLS
#endif /* DNS_MASTER_H */
|