rdatastruct.h revision 1.2 1 1.1 christos /*
2 1.2 christos * Copyright (C) 1998-2019 Internet Systems Consortium, Inc. ("ISC")
3 1.1 christos *
4 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
5 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
6 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 1.1 christos */
8 1.1 christos
9 1.1 christos /***************
10 1.1 christos ***************
11 1.1 christos *************** THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
12 1.1 christos *************** DO NOT EDIT!
13 1.1 christos ***************
14 1.1 christos ***************/
15 1.1 christos
16 1.1 christos /*! \file */
17 1.1 christos
18 1.1 christos /*
19 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
20 1.1 christos *
21 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
22 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
23 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
24 1.1 christos *
25 1.1 christos * See the COPYRIGHT file distributed with this work for additional
26 1.1 christos * information regarding copyright ownership.
27 1.1 christos */
28 1.1 christos
29 1.1 christos
30 1.1 christos #ifndef DNS_RDATASTRUCT_H
31 1.1 christos #define DNS_RDATASTRUCT_H 1
32 1.1 christos
33 1.1 christos #include <isc/lang.h>
34 1.1 christos #include <isc/sockaddr.h>
35 1.1 christos
36 1.1 christos #include <dns/name.h>
37 1.1 christos #include <dns/types.h>
38 1.1 christos
39 1.1 christos ISC_LANG_BEGINDECLS
40 1.1 christos
41 1.1 christos typedef struct dns_rdatacommon {
42 1.1 christos dns_rdataclass_t rdclass;
43 1.1 christos dns_rdatatype_t rdtype;
44 1.1 christos ISC_LINK(struct dns_rdatacommon) link;
45 1.1 christos } dns_rdatacommon_t;
46 1.1 christos
47 1.1 christos #define DNS_RDATACOMMON_INIT(_data, _rdtype, _rdclass) \
48 1.1 christos do { \
49 1.1 christos (_data)->common.rdtype = (_rdtype); \
50 1.1 christos (_data)->common.rdclass = (_rdclass); \
51 1.1 christos ISC_LINK_INIT(&(_data)->common, link); \
52 1.1 christos } while (0)
53 1.1 christos /*
54 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
55 1.1 christos *
56 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
57 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
58 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
59 1.1 christos *
60 1.1 christos * See the COPYRIGHT file distributed with this work for additional
61 1.1 christos * information regarding copyright ownership.
62 1.1 christos */
63 1.1 christos
64 1.1 christos /* */
65 1.1 christos #ifndef IN_1_A_1_H
66 1.1 christos #define IN_1_A_1_H 1
67 1.1 christos
68 1.1 christos
69 1.1 christos typedef struct dns_rdata_in_a {
70 1.1 christos dns_rdatacommon_t common;
71 1.1 christos struct in_addr in_addr;
72 1.1 christos } dns_rdata_in_a_t;
73 1.1 christos
74 1.1 christos #endif /* IN_1_A_1_H */
75 1.1 christos /*
76 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
77 1.1 christos *
78 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
79 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
80 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
81 1.1 christos *
82 1.1 christos * See the COPYRIGHT file distributed with this work for additional
83 1.1 christos * information regarding copyright ownership.
84 1.1 christos */
85 1.1 christos
86 1.1 christos
87 1.1 christos /* by Bjorn.Victor (at) it.uu.se, 2005-05-07 */
88 1.1 christos /* Based on generic/mx_15.h */
89 1.1 christos
90 1.1 christos #ifndef CH_3_A_1_H
91 1.1 christos #define CH_3_A_1_H 1
92 1.1 christos
93 1.2 christos typedef uint16_t ch_addr_t;
94 1.1 christos
95 1.1 christos typedef struct dns_rdata_ch_a {
96 1.1 christos dns_rdatacommon_t common;
97 1.1 christos isc_mem_t *mctx;
98 1.1 christos dns_name_t ch_addr_dom; /* ch-addr domain for back mapping */
99 1.1 christos ch_addr_t ch_addr; /* chaos address (16 bit) network order */
100 1.1 christos } dns_rdata_ch_a_t;
101 1.1 christos
102 1.1 christos #endif /* CH_3_A_1_H */
103 1.1 christos /*
104 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
105 1.1 christos *
106 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
107 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
108 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
109 1.1 christos *
110 1.1 christos * See the COPYRIGHT file distributed with this work for additional
111 1.1 christos * information regarding copyright ownership.
112 1.1 christos */
113 1.1 christos
114 1.1 christos /* */
115 1.1 christos #ifndef HS_4_A_1_H
116 1.1 christos #define HS_4_A_1_H 1
117 1.1 christos
118 1.1 christos
119 1.1 christos typedef struct dns_rdata_hs_a {
120 1.1 christos dns_rdatacommon_t common;
121 1.1 christos struct in_addr in_addr;
122 1.1 christos } dns_rdata_hs_a_t;
123 1.1 christos
124 1.1 christos #endif /* HS_4_A_1_H */
125 1.1 christos /*
126 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
127 1.1 christos *
128 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
129 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
130 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
131 1.1 christos *
132 1.1 christos * See the COPYRIGHT file distributed with this work for additional
133 1.1 christos * information regarding copyright ownership.
134 1.1 christos */
135 1.1 christos
136 1.1 christos /* */
137 1.1 christos #ifndef GENERIC_NS_2_H
138 1.1 christos #define GENERIC_NS_2_H 1
139 1.1 christos
140 1.1 christos
141 1.1 christos typedef struct dns_rdata_ns {
142 1.1 christos dns_rdatacommon_t common;
143 1.1 christos isc_mem_t *mctx;
144 1.1 christos dns_name_t name;
145 1.1 christos } dns_rdata_ns_t;
146 1.1 christos
147 1.1 christos
148 1.1 christos #endif /* GENERIC_NS_2_H */
149 1.1 christos /*
150 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
151 1.1 christos *
152 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
153 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
154 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
155 1.1 christos *
156 1.1 christos * See the COPYRIGHT file distributed with this work for additional
157 1.1 christos * information regarding copyright ownership.
158 1.1 christos */
159 1.1 christos
160 1.1 christos /* */
161 1.1 christos #ifndef GENERIC_MD_3_H
162 1.1 christos #define GENERIC_MD_3_H 1
163 1.1 christos
164 1.1 christos
165 1.1 christos typedef struct dns_rdata_md {
166 1.1 christos dns_rdatacommon_t common;
167 1.1 christos isc_mem_t *mctx;
168 1.1 christos dns_name_t md;
169 1.1 christos } dns_rdata_md_t;
170 1.1 christos
171 1.1 christos
172 1.1 christos #endif /* GENERIC_MD_3_H */
173 1.1 christos /*
174 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
175 1.1 christos *
176 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
177 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
178 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
179 1.1 christos *
180 1.1 christos * See the COPYRIGHT file distributed with this work for additional
181 1.1 christos * information regarding copyright ownership.
182 1.1 christos */
183 1.1 christos
184 1.1 christos /* */
185 1.1 christos #ifndef GENERIC_MF_4_H
186 1.1 christos #define GENERIC_MF_4_H 1
187 1.1 christos
188 1.1 christos
189 1.1 christos typedef struct dns_rdata_mf {
190 1.1 christos dns_rdatacommon_t common;
191 1.1 christos isc_mem_t *mctx;
192 1.1 christos dns_name_t mf;
193 1.1 christos } dns_rdata_mf_t;
194 1.1 christos
195 1.1 christos #endif /* GENERIC_MF_4_H */
196 1.1 christos /*
197 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
198 1.1 christos *
199 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
200 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
201 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
202 1.1 christos *
203 1.1 christos * See the COPYRIGHT file distributed with this work for additional
204 1.1 christos * information regarding copyright ownership.
205 1.1 christos */
206 1.1 christos
207 1.1 christos
208 1.1 christos #ifndef GENERIC_CNAME_5_H
209 1.1 christos #define GENERIC_CNAME_5_H 1
210 1.1 christos
211 1.1 christos typedef struct dns_rdata_cname {
212 1.1 christos dns_rdatacommon_t common;
213 1.1 christos isc_mem_t *mctx;
214 1.1 christos dns_name_t cname;
215 1.1 christos } dns_rdata_cname_t;
216 1.1 christos
217 1.1 christos #endif /* GENERIC_CNAME_5_H */
218 1.1 christos /*
219 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
220 1.1 christos *
221 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
222 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
223 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
224 1.1 christos *
225 1.1 christos * See the COPYRIGHT file distributed with this work for additional
226 1.1 christos * information regarding copyright ownership.
227 1.1 christos */
228 1.1 christos
229 1.1 christos /* */
230 1.1 christos #ifndef GENERIC_SOA_6_H
231 1.1 christos #define GENERIC_SOA_6_H 1
232 1.1 christos
233 1.1 christos
234 1.1 christos typedef struct dns_rdata_soa {
235 1.1 christos dns_rdatacommon_t common;
236 1.1 christos isc_mem_t *mctx;
237 1.1 christos dns_name_t origin;
238 1.1 christos dns_name_t contact;
239 1.2 christos uint32_t serial; /*%< host order */
240 1.2 christos uint32_t refresh; /*%< host order */
241 1.2 christos uint32_t retry; /*%< host order */
242 1.2 christos uint32_t expire; /*%< host order */
243 1.2 christos uint32_t minimum; /*%< host order */
244 1.1 christos } dns_rdata_soa_t;
245 1.1 christos
246 1.1 christos
247 1.1 christos #endif /* GENERIC_SOA_6_H */
248 1.1 christos /*
249 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
250 1.1 christos *
251 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
252 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
253 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
254 1.1 christos *
255 1.1 christos * See the COPYRIGHT file distributed with this work for additional
256 1.1 christos * information regarding copyright ownership.
257 1.1 christos */
258 1.1 christos
259 1.1 christos /* */
260 1.1 christos #ifndef GENERIC_MB_7_H
261 1.1 christos #define GENERIC_MB_7_H 1
262 1.1 christos
263 1.1 christos
264 1.1 christos typedef struct dns_rdata_mb {
265 1.1 christos dns_rdatacommon_t common;
266 1.1 christos isc_mem_t *mctx;
267 1.1 christos dns_name_t mb;
268 1.1 christos } dns_rdata_mb_t;
269 1.1 christos
270 1.1 christos #endif /* GENERIC_MB_7_H */
271 1.1 christos /*
272 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
273 1.1 christos *
274 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
275 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
276 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
277 1.1 christos *
278 1.1 christos * See the COPYRIGHT file distributed with this work for additional
279 1.1 christos * information regarding copyright ownership.
280 1.1 christos */
281 1.1 christos
282 1.1 christos /* */
283 1.1 christos #ifndef GENERIC_MG_8_H
284 1.1 christos #define GENERIC_MG_8_H 1
285 1.1 christos
286 1.1 christos
287 1.1 christos typedef struct dns_rdata_mg {
288 1.1 christos dns_rdatacommon_t common;
289 1.1 christos isc_mem_t *mctx;
290 1.1 christos dns_name_t mg;
291 1.1 christos } dns_rdata_mg_t;
292 1.1 christos
293 1.1 christos #endif /* GENERIC_MG_8_H */
294 1.1 christos /*
295 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
296 1.1 christos *
297 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
298 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
299 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
300 1.1 christos *
301 1.1 christos * See the COPYRIGHT file distributed with this work for additional
302 1.1 christos * information regarding copyright ownership.
303 1.1 christos */
304 1.1 christos
305 1.1 christos /* */
306 1.1 christos #ifndef GENERIC_MR_9_H
307 1.1 christos #define GENERIC_MR_9_H 1
308 1.1 christos
309 1.1 christos
310 1.1 christos typedef struct dns_rdata_mr {
311 1.1 christos dns_rdatacommon_t common;
312 1.1 christos isc_mem_t *mctx;
313 1.1 christos dns_name_t mr;
314 1.1 christos } dns_rdata_mr_t;
315 1.1 christos
316 1.1 christos #endif /* GENERIC_MR_9_H */
317 1.1 christos /*
318 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
319 1.1 christos *
320 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
321 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
322 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
323 1.1 christos *
324 1.1 christos * See the COPYRIGHT file distributed with this work for additional
325 1.1 christos * information regarding copyright ownership.
326 1.1 christos */
327 1.1 christos
328 1.1 christos /* */
329 1.1 christos #ifndef GENERIC_NULL_10_H
330 1.1 christos #define GENERIC_NULL_10_H 1
331 1.1 christos
332 1.1 christos
333 1.1 christos typedef struct dns_rdata_null {
334 1.1 christos dns_rdatacommon_t common;
335 1.1 christos isc_mem_t *mctx;
336 1.2 christos uint16_t length;
337 1.1 christos unsigned char *data;
338 1.1 christos } dns_rdata_null_t;
339 1.1 christos
340 1.1 christos
341 1.1 christos #endif /* GENERIC_NULL_10_H */
342 1.1 christos /*
343 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
344 1.1 christos *
345 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
346 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
347 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
348 1.1 christos *
349 1.1 christos * See the COPYRIGHT file distributed with this work for additional
350 1.1 christos * information regarding copyright ownership.
351 1.1 christos */
352 1.1 christos
353 1.1 christos #ifndef IN_1_WKS_11_H
354 1.1 christos #define IN_1_WKS_11_H 1
355 1.1 christos
356 1.1 christos
357 1.1 christos typedef struct dns_rdata_in_wks {
358 1.1 christos dns_rdatacommon_t common;
359 1.1 christos isc_mem_t *mctx;
360 1.1 christos struct in_addr in_addr;
361 1.2 christos uint16_t protocol;
362 1.1 christos unsigned char *map;
363 1.2 christos uint16_t map_len;
364 1.1 christos } dns_rdata_in_wks_t;
365 1.1 christos
366 1.1 christos #endif /* IN_1_WKS_11_H */
367 1.1 christos /*
368 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
369 1.1 christos *
370 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
371 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
372 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
373 1.1 christos *
374 1.1 christos * See the COPYRIGHT file distributed with this work for additional
375 1.1 christos * information regarding copyright ownership.
376 1.1 christos */
377 1.1 christos
378 1.1 christos /* */
379 1.1 christos #ifndef GENERIC_PTR_12_H
380 1.1 christos #define GENERIC_PTR_12_H 1
381 1.1 christos
382 1.1 christos
383 1.1 christos typedef struct dns_rdata_ptr {
384 1.1 christos dns_rdatacommon_t common;
385 1.1 christos isc_mem_t *mctx;
386 1.1 christos dns_name_t ptr;
387 1.1 christos } dns_rdata_ptr_t;
388 1.1 christos
389 1.1 christos #endif /* GENERIC_PTR_12_H */
390 1.1 christos /*
391 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
392 1.1 christos *
393 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
394 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
395 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
396 1.1 christos *
397 1.1 christos * See the COPYRIGHT file distributed with this work for additional
398 1.1 christos * information regarding copyright ownership.
399 1.1 christos */
400 1.1 christos
401 1.1 christos #ifndef GENERIC_HINFO_13_H
402 1.1 christos #define GENERIC_HINFO_13_H 1
403 1.1 christos
404 1.1 christos
405 1.1 christos typedef struct dns_rdata_hinfo {
406 1.1 christos dns_rdatacommon_t common;
407 1.1 christos isc_mem_t *mctx;
408 1.1 christos char *cpu;
409 1.1 christos char *os;
410 1.2 christos uint8_t cpu_len;
411 1.2 christos uint8_t os_len;
412 1.1 christos } dns_rdata_hinfo_t;
413 1.1 christos
414 1.1 christos #endif /* GENERIC_HINFO_13_H */
415 1.1 christos /*
416 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
417 1.1 christos *
418 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
419 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
420 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
421 1.1 christos *
422 1.1 christos * See the COPYRIGHT file distributed with this work for additional
423 1.1 christos * information regarding copyright ownership.
424 1.1 christos */
425 1.1 christos
426 1.1 christos /* */
427 1.1 christos #ifndef GENERIC_MINFO_14_H
428 1.1 christos #define GENERIC_MINFO_14_H 1
429 1.1 christos
430 1.1 christos
431 1.1 christos typedef struct dns_rdata_minfo {
432 1.1 christos dns_rdatacommon_t common;
433 1.1 christos isc_mem_t *mctx;
434 1.1 christos dns_name_t rmailbox;
435 1.1 christos dns_name_t emailbox;
436 1.1 christos } dns_rdata_minfo_t;
437 1.1 christos
438 1.1 christos #endif /* GENERIC_MINFO_14_H */
439 1.1 christos /*
440 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
441 1.1 christos *
442 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
443 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
444 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
445 1.1 christos *
446 1.1 christos * See the COPYRIGHT file distributed with this work for additional
447 1.1 christos * information regarding copyright ownership.
448 1.1 christos */
449 1.1 christos
450 1.1 christos /* */
451 1.1 christos #ifndef GENERIC_MX_15_H
452 1.1 christos #define GENERIC_MX_15_H 1
453 1.1 christos
454 1.1 christos
455 1.1 christos typedef struct dns_rdata_mx {
456 1.1 christos dns_rdatacommon_t common;
457 1.1 christos isc_mem_t *mctx;
458 1.2 christos uint16_t pref;
459 1.1 christos dns_name_t mx;
460 1.1 christos } dns_rdata_mx_t;
461 1.1 christos
462 1.1 christos #endif /* GENERIC_MX_15_H */
463 1.1 christos /*
464 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
465 1.1 christos *
466 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
467 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
468 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
469 1.1 christos *
470 1.1 christos * See the COPYRIGHT file distributed with this work for additional
471 1.1 christos * information regarding copyright ownership.
472 1.1 christos */
473 1.1 christos
474 1.1 christos /* */
475 1.1 christos #ifndef GENERIC_TXT_16_H
476 1.1 christos #define GENERIC_TXT_16_H 1
477 1.1 christos
478 1.1 christos
479 1.1 christos typedef struct dns_rdata_txt_string {
480 1.2 christos uint8_t length;
481 1.1 christos unsigned char *data;
482 1.1 christos } dns_rdata_txt_string_t;
483 1.1 christos
484 1.1 christos typedef struct dns_rdata_txt {
485 1.1 christos dns_rdatacommon_t common;
486 1.1 christos isc_mem_t *mctx;
487 1.1 christos unsigned char *txt;
488 1.2 christos uint16_t txt_len;
489 1.1 christos /* private */
490 1.2 christos uint16_t offset;
491 1.1 christos } dns_rdata_txt_t;
492 1.1 christos
493 1.1 christos /*
494 1.1 christos * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
495 1.1 christos * via rdatastructpre.h and rdatastructsuf.h.
496 1.1 christos */
497 1.1 christos
498 1.1 christos isc_result_t
499 1.1 christos dns_rdata_txt_first(dns_rdata_txt_t *);
500 1.1 christos
501 1.1 christos isc_result_t
502 1.1 christos dns_rdata_txt_next(dns_rdata_txt_t *);
503 1.1 christos
504 1.1 christos isc_result_t
505 1.1 christos dns_rdata_txt_current(dns_rdata_txt_t *, dns_rdata_txt_string_t *);
506 1.1 christos
507 1.1 christos #endif /* GENERIC_TXT_16_H */
508 1.1 christos /*
509 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
510 1.1 christos *
511 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
512 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
513 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
514 1.1 christos *
515 1.1 christos * See the COPYRIGHT file distributed with this work for additional
516 1.1 christos * information regarding copyright ownership.
517 1.1 christos */
518 1.1 christos
519 1.1 christos #ifndef GENERIC_RP_17_H
520 1.1 christos #define GENERIC_RP_17_H 1
521 1.1 christos
522 1.1 christos
523 1.1 christos /*!
524 1.1 christos * \brief Per RFC1183 */
525 1.1 christos
526 1.1 christos typedef struct dns_rdata_rp {
527 1.1 christos dns_rdatacommon_t common;
528 1.1 christos isc_mem_t *mctx;
529 1.1 christos dns_name_t mail;
530 1.1 christos dns_name_t text;
531 1.1 christos } dns_rdata_rp_t;
532 1.1 christos
533 1.1 christos
534 1.1 christos #endif /* GENERIC_RP_17_H */
535 1.1 christos /*
536 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
537 1.1 christos *
538 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
539 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
540 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
541 1.1 christos *
542 1.1 christos * See the COPYRIGHT file distributed with this work for additional
543 1.1 christos * information regarding copyright ownership.
544 1.1 christos */
545 1.1 christos
546 1.1 christos #ifndef GENERIC_AFSDB_18_H
547 1.1 christos #define GENERIC_AFSDB_18_H 1
548 1.1 christos
549 1.1 christos
550 1.1 christos /*!
551 1.1 christos * \brief Per RFC1183 */
552 1.1 christos
553 1.1 christos typedef struct dns_rdata_afsdb {
554 1.1 christos dns_rdatacommon_t common;
555 1.1 christos isc_mem_t *mctx;
556 1.2 christos uint16_t subtype;
557 1.1 christos dns_name_t server;
558 1.1 christos } dns_rdata_afsdb_t;
559 1.1 christos
560 1.1 christos #endif /* GENERIC_AFSDB_18_H */
561 1.1 christos
562 1.1 christos /*
563 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
564 1.1 christos *
565 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
566 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
567 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
568 1.1 christos *
569 1.1 christos * See the COPYRIGHT file distributed with this work for additional
570 1.1 christos * information regarding copyright ownership.
571 1.1 christos */
572 1.1 christos
573 1.1 christos #ifndef GENERIC_X25_19_H
574 1.1 christos #define GENERIC_X25_19_H 1
575 1.1 christos
576 1.1 christos
577 1.1 christos /*!
578 1.1 christos * \brief Per RFC1183 */
579 1.1 christos
580 1.1 christos typedef struct dns_rdata_x25 {
581 1.1 christos dns_rdatacommon_t common;
582 1.1 christos isc_mem_t *mctx;
583 1.1 christos unsigned char *x25;
584 1.2 christos uint8_t x25_len;
585 1.1 christos } dns_rdata_x25_t;
586 1.1 christos
587 1.1 christos #endif /* GENERIC_X25_19_H */
588 1.1 christos /*
589 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
590 1.1 christos *
591 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
592 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
593 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
594 1.1 christos *
595 1.1 christos * See the COPYRIGHT file distributed with this work for additional
596 1.1 christos * information regarding copyright ownership.
597 1.1 christos */
598 1.1 christos
599 1.1 christos #ifndef GENERIC_ISDN_20_H
600 1.1 christos #define GENERIC_ISDN_20_H 1
601 1.1 christos
602 1.1 christos
603 1.1 christos /*!
604 1.1 christos * \brief Per RFC1183 */
605 1.1 christos
606 1.1 christos typedef struct dns_rdata_isdn {
607 1.1 christos dns_rdatacommon_t common;
608 1.1 christos isc_mem_t *mctx;
609 1.1 christos char *isdn;
610 1.1 christos char *subaddress;
611 1.2 christos uint8_t isdn_len;
612 1.2 christos uint8_t subaddress_len;
613 1.1 christos } dns_rdata_isdn_t;
614 1.1 christos
615 1.1 christos #endif /* GENERIC_ISDN_20_H */
616 1.1 christos /*
617 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
618 1.1 christos *
619 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
620 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
621 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
622 1.1 christos *
623 1.1 christos * See the COPYRIGHT file distributed with this work for additional
624 1.1 christos * information regarding copyright ownership.
625 1.1 christos */
626 1.1 christos
627 1.1 christos #ifndef GENERIC_RT_21_H
628 1.1 christos #define GENERIC_RT_21_H 1
629 1.1 christos
630 1.1 christos
631 1.1 christos /*!
632 1.1 christos * \brief Per RFC1183 */
633 1.1 christos
634 1.1 christos typedef struct dns_rdata_rt {
635 1.1 christos dns_rdatacommon_t common;
636 1.1 christos isc_mem_t *mctx;
637 1.2 christos uint16_t preference;
638 1.1 christos dns_name_t host;
639 1.1 christos } dns_rdata_rt_t;
640 1.1 christos
641 1.1 christos #endif /* GENERIC_RT_21_H */
642 1.1 christos /*
643 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
644 1.1 christos *
645 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
646 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
647 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
648 1.1 christos *
649 1.1 christos * See the COPYRIGHT file distributed with this work for additional
650 1.1 christos * information regarding copyright ownership.
651 1.1 christos */
652 1.1 christos
653 1.1 christos #ifndef IN_1_NSAP_22_H
654 1.1 christos #define IN_1_NSAP_22_H 1
655 1.1 christos
656 1.1 christos
657 1.1 christos /*!
658 1.1 christos * \brief Per RFC1706 */
659 1.1 christos
660 1.1 christos typedef struct dns_rdata_in_nsap {
661 1.1 christos dns_rdatacommon_t common;
662 1.1 christos isc_mem_t *mctx;
663 1.1 christos unsigned char *nsap;
664 1.2 christos uint16_t nsap_len;
665 1.1 christos } dns_rdata_in_nsap_t;
666 1.1 christos
667 1.1 christos #endif /* IN_1_NSAP_22_H */
668 1.1 christos /*
669 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
670 1.1 christos *
671 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
672 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
673 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
674 1.1 christos *
675 1.1 christos * See the COPYRIGHT file distributed with this work for additional
676 1.1 christos * information regarding copyright ownership.
677 1.1 christos */
678 1.1 christos
679 1.1 christos #ifndef IN_1_NSAP_PTR_23_H
680 1.1 christos #define IN_1_NSAP_PTR_23_H 1
681 1.1 christos
682 1.1 christos
683 1.1 christos /*!
684 1.1 christos * \brief Per RFC1348. Obsoleted in RFC 1706 - use PTR instead. */
685 1.1 christos
686 1.1 christos typedef struct dns_rdata_in_nsap_ptr {
687 1.1 christos dns_rdatacommon_t common;
688 1.1 christos isc_mem_t *mctx;
689 1.1 christos dns_name_t owner;
690 1.1 christos } dns_rdata_in_nsap_ptr_t;
691 1.1 christos
692 1.1 christos #endif /* IN_1_NSAP_PTR_23_H */
693 1.1 christos /*
694 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
695 1.1 christos *
696 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
697 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
698 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
699 1.1 christos *
700 1.1 christos * See the COPYRIGHT file distributed with this work for additional
701 1.1 christos * information regarding copyright ownership.
702 1.1 christos */
703 1.1 christos
704 1.1 christos #ifndef GENERIC_SIG_24_H
705 1.1 christos #define GENERIC_SIG_24_H 1
706 1.1 christos
707 1.1 christos
708 1.1 christos /*!
709 1.1 christos * \brief Per RFC2535 */
710 1.1 christos
711 1.1 christos typedef struct dns_rdata_sig_t {
712 1.1 christos dns_rdatacommon_t common;
713 1.1 christos isc_mem_t * mctx;
714 1.1 christos dns_rdatatype_t covered;
715 1.1 christos dns_secalg_t algorithm;
716 1.2 christos uint8_t labels;
717 1.2 christos uint32_t originalttl;
718 1.2 christos uint32_t timeexpire;
719 1.2 christos uint32_t timesigned;
720 1.2 christos uint16_t keyid;
721 1.1 christos dns_name_t signer;
722 1.2 christos uint16_t siglen;
723 1.1 christos unsigned char * signature;
724 1.1 christos } dns_rdata_sig_t;
725 1.1 christos
726 1.1 christos
727 1.1 christos #endif /* GENERIC_SIG_24_H */
728 1.1 christos /*
729 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
730 1.1 christos *
731 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
732 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
733 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
734 1.1 christos *
735 1.1 christos * See the COPYRIGHT file distributed with this work for additional
736 1.1 christos * information regarding copyright ownership.
737 1.1 christos */
738 1.1 christos
739 1.1 christos #ifndef GENERIC_KEY_25_H
740 1.1 christos #define GENERIC_KEY_25_H 1
741 1.1 christos
742 1.1 christos
743 1.1 christos /*!
744 1.1 christos * \brief Per RFC2535 */
745 1.1 christos
746 1.1 christos typedef struct dns_rdata_key {
747 1.1 christos dns_rdatacommon_t common;
748 1.1 christos isc_mem_t * mctx;
749 1.2 christos uint16_t flags;
750 1.2 christos uint8_t protocol;
751 1.2 christos uint8_t algorithm;
752 1.2 christos uint16_t datalen;
753 1.1 christos unsigned char * data;
754 1.1 christos } dns_rdata_key_t;
755 1.1 christos
756 1.1 christos
757 1.1 christos #endif /* GENERIC_KEY_25_H */
758 1.1 christos /*
759 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
760 1.1 christos *
761 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
762 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
763 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
764 1.1 christos *
765 1.1 christos * See the COPYRIGHT file distributed with this work for additional
766 1.1 christos * information regarding copyright ownership.
767 1.1 christos */
768 1.1 christos
769 1.1 christos #ifndef IN_1_PX_26_H
770 1.1 christos #define IN_1_PX_26_H 1
771 1.1 christos
772 1.1 christos
773 1.1 christos /*!
774 1.1 christos * \brief Per RFC2163 */
775 1.1 christos
776 1.1 christos typedef struct dns_rdata_in_px {
777 1.1 christos dns_rdatacommon_t common;
778 1.1 christos isc_mem_t *mctx;
779 1.2 christos uint16_t preference;
780 1.1 christos dns_name_t map822;
781 1.1 christos dns_name_t mapx400;
782 1.1 christos } dns_rdata_in_px_t;
783 1.1 christos
784 1.1 christos #endif /* IN_1_PX_26_H */
785 1.1 christos /*
786 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
787 1.1 christos *
788 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
789 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
790 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
791 1.1 christos *
792 1.1 christos * See the COPYRIGHT file distributed with this work for additional
793 1.1 christos * information regarding copyright ownership.
794 1.1 christos */
795 1.1 christos
796 1.1 christos #ifndef GENERIC_GPOS_27_H
797 1.1 christos #define GENERIC_GPOS_27_H 1
798 1.1 christos
799 1.1 christos
800 1.1 christos /*!
801 1.1 christos * \brief per RFC1712 */
802 1.1 christos
803 1.1 christos typedef struct dns_rdata_gpos {
804 1.1 christos dns_rdatacommon_t common;
805 1.1 christos isc_mem_t *mctx;
806 1.1 christos char *longitude;
807 1.1 christos char *latitude;
808 1.1 christos char *altitude;
809 1.2 christos uint8_t long_len;
810 1.2 christos uint8_t lat_len;
811 1.2 christos uint8_t alt_len;
812 1.1 christos } dns_rdata_gpos_t;
813 1.1 christos
814 1.1 christos #endif /* GENERIC_GPOS_27_H */
815 1.1 christos /*
816 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
817 1.1 christos *
818 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
819 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
820 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
821 1.1 christos *
822 1.1 christos * See the COPYRIGHT file distributed with this work for additional
823 1.1 christos * information regarding copyright ownership.
824 1.1 christos */
825 1.1 christos
826 1.1 christos #ifndef IN_1_AAAA_28_H
827 1.1 christos #define IN_1_AAAA_28_H 1
828 1.1 christos
829 1.1 christos
830 1.1 christos /*!
831 1.1 christos * \brief Per RFC1886 */
832 1.1 christos
833 1.1 christos typedef struct dns_rdata_in_aaaa {
834 1.1 christos dns_rdatacommon_t common;
835 1.1 christos struct in6_addr in6_addr;
836 1.1 christos } dns_rdata_in_aaaa_t;
837 1.1 christos
838 1.1 christos #endif /* IN_1_AAAA_28_H */
839 1.1 christos /*
840 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
841 1.1 christos *
842 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
843 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
844 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
845 1.1 christos *
846 1.1 christos * See the COPYRIGHT file distributed with this work for additional
847 1.1 christos * information regarding copyright ownership.
848 1.1 christos */
849 1.1 christos
850 1.1 christos #ifndef GENERIC_LOC_29_H
851 1.1 christos #define GENERIC_LOC_29_H 1
852 1.1 christos
853 1.1 christos
854 1.1 christos /*!
855 1.1 christos * \brief Per RFC1876 */
856 1.1 christos
857 1.1 christos typedef struct dns_rdata_loc_0 {
858 1.2 christos uint8_t version; /* must be first and zero */
859 1.2 christos uint8_t size;
860 1.2 christos uint8_t horizontal;
861 1.2 christos uint8_t vertical;
862 1.2 christos uint32_t latitude;
863 1.2 christos uint32_t longitude;
864 1.2 christos uint32_t altitude;
865 1.1 christos } dns_rdata_loc_0_t;
866 1.1 christos
867 1.1 christos typedef struct dns_rdata_loc {
868 1.1 christos dns_rdatacommon_t common;
869 1.1 christos union {
870 1.1 christos dns_rdata_loc_0_t v0;
871 1.1 christos } v;
872 1.1 christos } dns_rdata_loc_t;
873 1.1 christos
874 1.1 christos #endif /* GENERIC_LOC_29_H */
875 1.1 christos /*
876 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
877 1.1 christos *
878 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
879 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
880 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
881 1.1 christos *
882 1.1 christos * See the COPYRIGHT file distributed with this work for additional
883 1.1 christos * information regarding copyright ownership.
884 1.1 christos */
885 1.1 christos
886 1.1 christos #ifndef GENERIC_NXT_30_H
887 1.1 christos #define GENERIC_NXT_30_H 1
888 1.1 christos
889 1.1 christos
890 1.1 christos /*!
891 1.1 christos * \brief RFC2535 */
892 1.1 christos
893 1.1 christos typedef struct dns_rdata_nxt {
894 1.1 christos dns_rdatacommon_t common;
895 1.1 christos isc_mem_t *mctx;
896 1.1 christos dns_name_t next;
897 1.1 christos unsigned char *typebits;
898 1.2 christos uint16_t len;
899 1.1 christos } dns_rdata_nxt_t;
900 1.1 christos
901 1.1 christos #endif /* GENERIC_NXT_30_H */
902 1.1 christos /*
903 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
904 1.1 christos *
905 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
906 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
907 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
908 1.1 christos *
909 1.1 christos * See the COPYRIGHT file distributed with this work for additional
910 1.1 christos * information regarding copyright ownership.
911 1.1 christos */
912 1.1 christos
913 1.2 christos #ifndef IN_1_EID_31_H
914 1.2 christos #define IN_1_EID_31_H 1
915 1.2 christos
916 1.2 christos
917 1.2 christos /*!
918 1.2 christos * \brief http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt
919 1.2 christos */
920 1.2 christos
921 1.2 christos typedef struct dns_rdata_in_eid {
922 1.2 christos dns_rdatacommon_t common;
923 1.2 christos isc_mem_t *mctx;
924 1.2 christos unsigned char *eid;
925 1.2 christos uint16_t eid_len;
926 1.2 christos } dns_rdata_in_eid_t;
927 1.2 christos
928 1.2 christos #endif /* IN_1_EID_31_H */
929 1.2 christos /*
930 1.2 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
931 1.2 christos *
932 1.2 christos * This Source Code Form is subject to the terms of the Mozilla Public
933 1.2 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
934 1.2 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
935 1.2 christos *
936 1.2 christos * See the COPYRIGHT file distributed with this work for additional
937 1.2 christos * information regarding copyright ownership.
938 1.2 christos */
939 1.2 christos
940 1.2 christos #ifndef IN_1_NIMLOC_32_H
941 1.2 christos #define IN_1_NIMLOC_32_H 1
942 1.2 christos
943 1.2 christos
944 1.2 christos /*!
945 1.2 christos * \brief http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt
946 1.2 christos */
947 1.2 christos
948 1.2 christos typedef struct dns_rdata_in_nimloc {
949 1.2 christos dns_rdatacommon_t common;
950 1.2 christos isc_mem_t *mctx;
951 1.2 christos unsigned char *nimloc;
952 1.2 christos uint16_t nimloc_len;
953 1.2 christos } dns_rdata_in_nimloc_t;
954 1.2 christos
955 1.2 christos #endif /* IN_1_NIMLOC_32_H */
956 1.2 christos /*
957 1.2 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
958 1.2 christos *
959 1.2 christos * This Source Code Form is subject to the terms of the Mozilla Public
960 1.2 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
961 1.2 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
962 1.2 christos *
963 1.2 christos * See the COPYRIGHT file distributed with this work for additional
964 1.2 christos * information regarding copyright ownership.
965 1.2 christos */
966 1.2 christos
967 1.1 christos #ifndef IN_1_SRV_33_H
968 1.1 christos #define IN_1_SRV_33_H 1
969 1.1 christos
970 1.1 christos /*!
971 1.1 christos * \brief Per RFC2782 */
972 1.1 christos
973 1.1 christos typedef struct dns_rdata_in_srv {
974 1.1 christos dns_rdatacommon_t common;
975 1.1 christos isc_mem_t *mctx;
976 1.2 christos uint16_t priority;
977 1.2 christos uint16_t weight;
978 1.2 christos uint16_t port;
979 1.1 christos dns_name_t target;
980 1.1 christos } dns_rdata_in_srv_t;
981 1.1 christos
982 1.1 christos #endif /* IN_1_SRV_33_H */
983 1.1 christos /*
984 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
985 1.1 christos *
986 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
987 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
988 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
989 1.1 christos *
990 1.1 christos * See the COPYRIGHT file distributed with this work for additional
991 1.1 christos * information regarding copyright ownership.
992 1.1 christos */
993 1.1 christos
994 1.2 christos #ifndef IN_1_ATMA_22_H
995 1.2 christos #define IN_1_ATMA_22_H 1
996 1.2 christos
997 1.2 christos
998 1.2 christos /*!
999 1.2 christos * \brief Per RFC1706 */
1000 1.2 christos
1001 1.2 christos typedef struct dns_rdata_in_atma {
1002 1.2 christos dns_rdatacommon_t common;
1003 1.2 christos isc_mem_t *mctx;
1004 1.2 christos unsigned char format;
1005 1.2 christos unsigned char *atma;
1006 1.2 christos uint16_t atma_len;
1007 1.2 christos } dns_rdata_in_atma_t;
1008 1.2 christos
1009 1.2 christos #endif /* IN_1_ATMA_22_H */
1010 1.2 christos /*
1011 1.2 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1012 1.2 christos *
1013 1.2 christos * This Source Code Form is subject to the terms of the Mozilla Public
1014 1.2 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1015 1.2 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1016 1.2 christos *
1017 1.2 christos * See the COPYRIGHT file distributed with this work for additional
1018 1.2 christos * information regarding copyright ownership.
1019 1.2 christos */
1020 1.2 christos
1021 1.1 christos #ifndef GENERIC_NAPTR_35_H
1022 1.1 christos #define GENERIC_NAPTR_35_H 1
1023 1.1 christos
1024 1.1 christos
1025 1.1 christos /*!
1026 1.1 christos * \brief Per RFC2915 */
1027 1.1 christos
1028 1.1 christos typedef struct dns_rdata_naptr {
1029 1.1 christos dns_rdatacommon_t common;
1030 1.1 christos isc_mem_t *mctx;
1031 1.2 christos uint16_t order;
1032 1.2 christos uint16_t preference;
1033 1.1 christos char *flags;
1034 1.2 christos uint8_t flags_len;
1035 1.1 christos char *service;
1036 1.2 christos uint8_t service_len;
1037 1.1 christos char *regexp;
1038 1.2 christos uint8_t regexp_len;
1039 1.1 christos dns_name_t replacement;
1040 1.1 christos } dns_rdata_naptr_t;
1041 1.1 christos
1042 1.1 christos #endif /* GENERIC_NAPTR_35_H */
1043 1.1 christos /*
1044 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1045 1.1 christos *
1046 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1047 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1048 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1049 1.1 christos *
1050 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1051 1.1 christos * information regarding copyright ownership.
1052 1.1 christos */
1053 1.1 christos
1054 1.1 christos #ifndef IN_1_KX_36_H
1055 1.1 christos #define IN_1_KX_36_H 1
1056 1.1 christos
1057 1.1 christos
1058 1.1 christos /*!
1059 1.1 christos * \brief Per RFC2230 */
1060 1.1 christos
1061 1.1 christos typedef struct dns_rdata_in_kx {
1062 1.1 christos dns_rdatacommon_t common;
1063 1.1 christos isc_mem_t *mctx;
1064 1.2 christos uint16_t preference;
1065 1.1 christos dns_name_t exchange;
1066 1.1 christos } dns_rdata_in_kx_t;
1067 1.1 christos
1068 1.1 christos #endif /* IN_1_KX_36_H */
1069 1.1 christos /*
1070 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1071 1.1 christos *
1072 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1073 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1074 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1075 1.1 christos *
1076 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1077 1.1 christos * information regarding copyright ownership.
1078 1.1 christos */
1079 1.1 christos
1080 1.1 christos
1081 1.1 christos #ifndef GENERIC_CERT_37_H
1082 1.1 christos #define GENERIC_CERT_37_H 1
1083 1.1 christos
1084 1.1 christos /*% RFC2538 */
1085 1.1 christos typedef struct dns_rdata_cert {
1086 1.1 christos dns_rdatacommon_t common;
1087 1.1 christos isc_mem_t *mctx;
1088 1.2 christos uint16_t type;
1089 1.2 christos uint16_t key_tag;
1090 1.2 christos uint8_t algorithm;
1091 1.2 christos uint16_t length;
1092 1.1 christos unsigned char *certificate;
1093 1.1 christos } dns_rdata_cert_t;
1094 1.1 christos
1095 1.1 christos #endif /* GENERIC_CERT_37_H */
1096 1.1 christos /*
1097 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1098 1.1 christos *
1099 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1100 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1101 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1102 1.1 christos *
1103 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1104 1.1 christos * information regarding copyright ownership.
1105 1.1 christos */
1106 1.1 christos
1107 1.1 christos #ifndef IN_1_A6_38_H
1108 1.1 christos #define IN_1_A6_38_H 1
1109 1.1 christos
1110 1.1 christos
1111 1.1 christos /*!
1112 1.1 christos * \brief Per RFC2874 */
1113 1.1 christos
1114 1.1 christos typedef struct dns_rdata_in_a6 {
1115 1.1 christos dns_rdatacommon_t common;
1116 1.1 christos isc_mem_t *mctx;
1117 1.1 christos dns_name_t prefix;
1118 1.2 christos uint8_t prefixlen;
1119 1.1 christos struct in6_addr in6_addr;
1120 1.1 christos } dns_rdata_in_a6_t;
1121 1.1 christos
1122 1.1 christos #endif /* IN_1_A6_38_H */
1123 1.1 christos /*
1124 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1125 1.1 christos *
1126 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1127 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1128 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1129 1.1 christos *
1130 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1131 1.1 christos * information regarding copyright ownership.
1132 1.1 christos */
1133 1.1 christos
1134 1.1 christos #ifndef GENERIC_DNAME_39_H
1135 1.1 christos #define GENERIC_DNAME_39_H 1
1136 1.1 christos
1137 1.1 christos
1138 1.1 christos /*!
1139 1.1 christos * \brief per RFC2672 */
1140 1.1 christos
1141 1.1 christos typedef struct dns_rdata_dname {
1142 1.1 christos dns_rdatacommon_t common;
1143 1.1 christos isc_mem_t *mctx;
1144 1.1 christos dns_name_t dname;
1145 1.1 christos } dns_rdata_dname_t;
1146 1.1 christos
1147 1.1 christos #endif /* GENERIC_DNAME_39_H */
1148 1.1 christos /*
1149 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1150 1.1 christos *
1151 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1152 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1153 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1154 1.1 christos *
1155 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1156 1.1 christos * information regarding copyright ownership.
1157 1.1 christos */
1158 1.1 christos
1159 1.1 christos #ifndef GENERIC_SINK_40_H
1160 1.1 christos #define GENERIC_SINK_40_H 1
1161 1.1 christos
1162 1.1 christos typedef struct dns_rdata_sink_t {
1163 1.1 christos dns_rdatacommon_t common;
1164 1.1 christos isc_mem_t * mctx;
1165 1.2 christos uint8_t meaning;
1166 1.2 christos uint8_t coding;
1167 1.2 christos uint8_t subcoding;
1168 1.2 christos uint16_t datalen;
1169 1.1 christos unsigned char * data;
1170 1.1 christos } dns_rdata_sink_t;
1171 1.1 christos
1172 1.1 christos #endif /* GENERIC_SINK_40_H */
1173 1.1 christos /*
1174 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1175 1.1 christos *
1176 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1177 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1178 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1179 1.1 christos *
1180 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1181 1.1 christos * information regarding copyright ownership.
1182 1.1 christos */
1183 1.1 christos
1184 1.1 christos #ifndef GENERIC_OPT_41_H
1185 1.1 christos #define GENERIC_OPT_41_H 1
1186 1.1 christos
1187 1.1 christos
1188 1.1 christos /*!
1189 1.1 christos * \brief Per RFC2671 */
1190 1.1 christos
1191 1.1 christos typedef struct dns_rdata_opt_opcode {
1192 1.2 christos uint16_t opcode;
1193 1.2 christos uint16_t length;
1194 1.1 christos unsigned char *data;
1195 1.1 christos } dns_rdata_opt_opcode_t;
1196 1.1 christos
1197 1.1 christos typedef struct dns_rdata_opt {
1198 1.1 christos dns_rdatacommon_t common;
1199 1.1 christos isc_mem_t *mctx;
1200 1.1 christos unsigned char *options;
1201 1.2 christos uint16_t length;
1202 1.1 christos /* private */
1203 1.2 christos uint16_t offset;
1204 1.1 christos } dns_rdata_opt_t;
1205 1.1 christos
1206 1.1 christos /*
1207 1.1 christos * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1208 1.1 christos * via rdatastructpre.h and rdatastructsuf.h.
1209 1.1 christos */
1210 1.1 christos
1211 1.1 christos isc_result_t
1212 1.1 christos dns_rdata_opt_first(dns_rdata_opt_t *);
1213 1.1 christos
1214 1.1 christos isc_result_t
1215 1.1 christos dns_rdata_opt_next(dns_rdata_opt_t *);
1216 1.1 christos
1217 1.1 christos isc_result_t
1218 1.1 christos dns_rdata_opt_current(dns_rdata_opt_t *, dns_rdata_opt_opcode_t *);
1219 1.1 christos
1220 1.1 christos #endif /* GENERIC_OPT_41_H */
1221 1.1 christos /*
1222 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1223 1.1 christos *
1224 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1225 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1226 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1227 1.1 christos *
1228 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1229 1.1 christos * information regarding copyright ownership.
1230 1.1 christos */
1231 1.1 christos
1232 1.1 christos /* */
1233 1.1 christos #ifndef IN_1_APL_42_H
1234 1.1 christos #define IN_1_APL_42_H 1
1235 1.1 christos
1236 1.1 christos
1237 1.1 christos typedef struct dns_rdata_apl_ent {
1238 1.2 christos bool negative;
1239 1.2 christos uint16_t family;
1240 1.2 christos uint8_t prefix;
1241 1.2 christos uint8_t length;
1242 1.1 christos unsigned char *data;
1243 1.1 christos } dns_rdata_apl_ent_t;
1244 1.1 christos
1245 1.1 christos typedef struct dns_rdata_in_apl {
1246 1.1 christos dns_rdatacommon_t common;
1247 1.1 christos isc_mem_t *mctx;
1248 1.1 christos /* type & class specific elements */
1249 1.1 christos unsigned char *apl;
1250 1.2 christos uint16_t apl_len;
1251 1.1 christos /* private */
1252 1.2 christos uint16_t offset;
1253 1.1 christos } dns_rdata_in_apl_t;
1254 1.1 christos
1255 1.1 christos /*
1256 1.1 christos * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1257 1.1 christos * via rdatastructpre.h and rdatastructsuf.h.
1258 1.1 christos */
1259 1.1 christos
1260 1.1 christos isc_result_t
1261 1.1 christos dns_rdata_apl_first(dns_rdata_in_apl_t *);
1262 1.1 christos
1263 1.1 christos isc_result_t
1264 1.1 christos dns_rdata_apl_next(dns_rdata_in_apl_t *);
1265 1.1 christos
1266 1.1 christos isc_result_t
1267 1.1 christos dns_rdata_apl_current(dns_rdata_in_apl_t *, dns_rdata_apl_ent_t *);
1268 1.1 christos
1269 1.1 christos unsigned int
1270 1.1 christos dns_rdata_apl_count(const dns_rdata_in_apl_t *apl);
1271 1.1 christos
1272 1.1 christos #endif /* IN_1_APL_42_H */
1273 1.1 christos /*
1274 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1275 1.1 christos *
1276 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1277 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1278 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1279 1.1 christos *
1280 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1281 1.1 christos * information regarding copyright ownership.
1282 1.1 christos */
1283 1.1 christos
1284 1.1 christos
1285 1.1 christos #ifndef GENERIC_DS_43_H
1286 1.1 christos #define GENERIC_DS_43_H 1
1287 1.1 christos
1288 1.1 christos /*!
1289 1.1 christos * \brief per draft-ietf-dnsext-delegation-signer-05.txt */
1290 1.1 christos typedef struct dns_rdata_ds {
1291 1.1 christos dns_rdatacommon_t common;
1292 1.1 christos isc_mem_t *mctx;
1293 1.2 christos uint16_t key_tag;
1294 1.2 christos uint8_t algorithm;
1295 1.2 christos uint8_t digest_type;
1296 1.2 christos uint16_t length;
1297 1.1 christos unsigned char *digest;
1298 1.1 christos } dns_rdata_ds_t;
1299 1.1 christos
1300 1.1 christos #endif /* GENERIC_DS_43_H */
1301 1.1 christos /*
1302 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1303 1.1 christos *
1304 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1305 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1306 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1307 1.1 christos *
1308 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1309 1.1 christos * information regarding copyright ownership.
1310 1.1 christos */
1311 1.1 christos
1312 1.1 christos
1313 1.1 christos /*!
1314 1.1 christos * \brief Per RFC 4255 */
1315 1.1 christos
1316 1.1 christos #ifndef GENERIC_SSHFP_44_H
1317 1.1 christos #define GENERIC_SSHFP_44_H 1
1318 1.1 christos
1319 1.1 christos typedef struct dns_rdata_sshfp {
1320 1.1 christos dns_rdatacommon_t common;
1321 1.1 christos isc_mem_t *mctx;
1322 1.2 christos uint8_t algorithm;
1323 1.2 christos uint8_t digest_type;
1324 1.2 christos uint16_t length;
1325 1.1 christos unsigned char *digest;
1326 1.1 christos } dns_rdata_sshfp_t;
1327 1.1 christos
1328 1.1 christos #endif /* GENERIC_SSHFP_44_H */
1329 1.1 christos /*
1330 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1331 1.1 christos *
1332 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1333 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1334 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1335 1.1 christos *
1336 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1337 1.1 christos * information regarding copyright ownership.
1338 1.1 christos */
1339 1.1 christos
1340 1.1 christos
1341 1.1 christos #ifndef GENERIC_IPSECKEY_45_H
1342 1.1 christos #define GENERIC_IPSECKEY_45_H 1
1343 1.1 christos
1344 1.1 christos typedef struct dns_rdata_ipseckey {
1345 1.1 christos dns_rdatacommon_t common;
1346 1.1 christos isc_mem_t *mctx;
1347 1.2 christos uint8_t precedence;
1348 1.2 christos uint8_t gateway_type;
1349 1.2 christos uint8_t algorithm;
1350 1.1 christos struct in_addr in_addr; /* gateway type 1 */
1351 1.1 christos struct in6_addr in6_addr; /* gateway type 2 */
1352 1.1 christos dns_name_t gateway; /* gateway type 3 */
1353 1.1 christos unsigned char *key;
1354 1.2 christos uint16_t keylength;
1355 1.1 christos } dns_rdata_ipseckey_t;
1356 1.1 christos
1357 1.1 christos #endif /* GENERIC_IPSECKEY_45_H */
1358 1.1 christos /*
1359 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1360 1.1 christos *
1361 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1362 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1363 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1364 1.1 christos *
1365 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1366 1.1 christos * information regarding copyright ownership.
1367 1.1 christos */
1368 1.1 christos
1369 1.1 christos #ifndef GENERIC_DNSSIG_46_H
1370 1.1 christos #define GENERIC_DNSSIG_46_H 1
1371 1.1 christos
1372 1.1 christos
1373 1.1 christos /*!
1374 1.1 christos * \brief Per RFC2535 */
1375 1.1 christos typedef struct dns_rdata_rrsig {
1376 1.1 christos dns_rdatacommon_t common;
1377 1.1 christos isc_mem_t * mctx;
1378 1.1 christos dns_rdatatype_t covered;
1379 1.1 christos dns_secalg_t algorithm;
1380 1.2 christos uint8_t labels;
1381 1.2 christos uint32_t originalttl;
1382 1.2 christos uint32_t timeexpire;
1383 1.2 christos uint32_t timesigned;
1384 1.2 christos uint16_t keyid;
1385 1.1 christos dns_name_t signer;
1386 1.2 christos uint16_t siglen;
1387 1.1 christos unsigned char * signature;
1388 1.1 christos } dns_rdata_rrsig_t;
1389 1.1 christos
1390 1.1 christos
1391 1.1 christos #endif /* GENERIC_DNSSIG_46_H */
1392 1.1 christos /*
1393 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1394 1.1 christos *
1395 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1396 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1397 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1398 1.1 christos *
1399 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1400 1.1 christos * information regarding copyright ownership.
1401 1.1 christos */
1402 1.1 christos
1403 1.1 christos #ifndef GENERIC_NSEC_47_H
1404 1.1 christos #define GENERIC_NSEC_47_H 1
1405 1.1 christos
1406 1.1 christos
1407 1.1 christos /*!
1408 1.1 christos * \brief Per RFC 3845 */
1409 1.1 christos
1410 1.1 christos typedef struct dns_rdata_nsec {
1411 1.1 christos dns_rdatacommon_t common;
1412 1.1 christos isc_mem_t *mctx;
1413 1.1 christos dns_name_t next;
1414 1.1 christos unsigned char *typebits;
1415 1.2 christos uint16_t len;
1416 1.1 christos } dns_rdata_nsec_t;
1417 1.1 christos
1418 1.1 christos #endif /* GENERIC_NSEC_47_H */
1419 1.1 christos /*
1420 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1421 1.1 christos *
1422 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1423 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1424 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1425 1.1 christos *
1426 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1427 1.1 christos * information regarding copyright ownership.
1428 1.1 christos */
1429 1.1 christos
1430 1.1 christos #ifndef GENERIC_DNSKEY_48_H
1431 1.1 christos #define GENERIC_DNSKEY_48_H 1
1432 1.1 christos
1433 1.1 christos /*!
1434 1.1 christos * \brief per RFC2535
1435 1.1 christos */
1436 1.1 christos
1437 1.1 christos typedef struct dns_rdata_key dns_rdata_dnskey_t;
1438 1.1 christos
1439 1.1 christos #endif /* GENERIC_DNSKEY_48_H */
1440 1.1 christos /*
1441 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1442 1.1 christos *
1443 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1444 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1445 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1446 1.1 christos *
1447 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1448 1.1 christos * information regarding copyright ownership.
1449 1.1 christos */
1450 1.1 christos
1451 1.1 christos /* */
1452 1.1 christos #ifndef IN_1_DHCID_49_H
1453 1.1 christos #define IN_1_DHCID_49_H 1
1454 1.1 christos
1455 1.1 christos
1456 1.1 christos typedef struct dns_rdata_in_dhcid {
1457 1.1 christos dns_rdatacommon_t common;
1458 1.1 christos isc_mem_t *mctx;
1459 1.1 christos unsigned char *dhcid;
1460 1.1 christos unsigned int length;
1461 1.1 christos } dns_rdata_in_dhcid_t;
1462 1.1 christos
1463 1.1 christos #endif /* IN_1_DHCID_49_H */
1464 1.1 christos /*
1465 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1466 1.1 christos *
1467 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1468 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1469 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1470 1.1 christos *
1471 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1472 1.1 christos * information regarding copyright ownership.
1473 1.1 christos */
1474 1.1 christos
1475 1.1 christos
1476 1.1 christos #ifndef GENERIC_NSEC3_50_H
1477 1.1 christos #define GENERIC_NSEC3_50_H 1
1478 1.1 christos
1479 1.1 christos
1480 1.1 christos /*!
1481 1.1 christos * \brief Per RFC 5155 */
1482 1.1 christos
1483 1.1 christos #include <isc/iterated_hash.h>
1484 1.1 christos
1485 1.1 christos typedef struct dns_rdata_nsec3 {
1486 1.1 christos dns_rdatacommon_t common;
1487 1.1 christos isc_mem_t *mctx;
1488 1.1 christos dns_hash_t hash;
1489 1.1 christos unsigned char flags;
1490 1.1 christos dns_iterations_t iterations;
1491 1.1 christos unsigned char salt_length;
1492 1.1 christos unsigned char next_length;
1493 1.2 christos uint16_t len;
1494 1.1 christos unsigned char *salt;
1495 1.1 christos unsigned char *next;
1496 1.1 christos unsigned char *typebits;
1497 1.1 christos } dns_rdata_nsec3_t;
1498 1.1 christos
1499 1.1 christos /*
1500 1.1 christos * The corresponding NSEC3 interval is OPTOUT indicating possible
1501 1.1 christos * insecure delegations.
1502 1.1 christos */
1503 1.1 christos #define DNS_NSEC3FLAG_OPTOUT 0x01U
1504 1.1 christos
1505 1.1 christos /*%
1506 1.1 christos * The following flags are used in the private-type record (implemented in
1507 1.1 christos * lib/dns/private.c) which is used to store NSEC3PARAM data during the
1508 1.1 christos * time when it is not legal to have an actual NSEC3PARAM record in the
1509 1.1 christos * zone. They are defined here because the private-type record uses the
1510 1.1 christos * same flags field for the OPTOUT flag above and for the private flags
1511 1.1 christos * below. XXX: This should be considered for refactoring.
1512 1.1 christos */
1513 1.1 christos
1514 1.1 christos /*%
1515 1.1 christos * Non-standard, private type only.
1516 1.1 christos *
1517 1.1 christos * Create a corresponding NSEC3 chain.
1518 1.1 christos * Once the NSEC3 chain is complete this flag will be removed to signal
1519 1.1 christos * that there is a complete chain.
1520 1.1 christos *
1521 1.1 christos * This flag is automatically set when a NSEC3PARAM record is added to
1522 1.1 christos * the zone via UPDATE.
1523 1.1 christos *
1524 1.1 christos * NSEC3PARAM records containing this flag should never be published,
1525 1.1 christos * but if they are, they should be ignored by RFC 5155 compliant
1526 1.1 christos * nameservers.
1527 1.1 christos */
1528 1.1 christos #define DNS_NSEC3FLAG_CREATE 0x80U
1529 1.1 christos
1530 1.1 christos /*%
1531 1.1 christos * Non-standard, private type only.
1532 1.1 christos *
1533 1.1 christos * The corresponding NSEC3 set is to be removed once the NSEC chain
1534 1.1 christos * has been generated.
1535 1.1 christos *
1536 1.1 christos * This flag is automatically set when the last active NSEC3PARAM record
1537 1.1 christos * is removed from the zone via UPDATE.
1538 1.1 christos *
1539 1.1 christos * NSEC3PARAM records containing this flag should never be published,
1540 1.1 christos * but if they are, they should be ignored by RFC 5155 compliant
1541 1.1 christos * nameservers.
1542 1.1 christos */
1543 1.1 christos #define DNS_NSEC3FLAG_REMOVE 0x40U
1544 1.1 christos
1545 1.1 christos /*%
1546 1.1 christos * Non-standard, private type only.
1547 1.1 christos *
1548 1.1 christos * When set with the CREATE flag, a corresponding NSEC3 chain will be
1549 1.1 christos * created when the zone becomes capable of supporting one (i.e., when it
1550 1.1 christos * has a DNSKEY RRset containing at least one NSEC3-capable algorithm).
1551 1.1 christos * Without this flag, NSEC3 chain creation would be attempted immediately,
1552 1.1 christos * fail, and the private type record would be removed. With it, the NSEC3
1553 1.1 christos * parameters are stored until they can be used. When the zone has the
1554 1.1 christos * necessary prerequisites for NSEC3, then the INITIAL flag can be cleared,
1555 1.1 christos * and the record will be cleaned up normally.
1556 1.1 christos *
1557 1.1 christos * NSEC3PARAM records containing this flag should never be published, but
1558 1.1 christos * if they are, they should be ignored by RFC 5155 compliant nameservers.
1559 1.1 christos */
1560 1.1 christos #define DNS_NSEC3FLAG_INITIAL 0x20U
1561 1.1 christos
1562 1.1 christos /*%
1563 1.1 christos * Non-standard, private type only.
1564 1.1 christos *
1565 1.1 christos * Prevent the creation of a NSEC chain before the last NSEC3 chain
1566 1.1 christos * is removed. This will normally only be set when the zone is
1567 1.1 christos * transitioning from secure with NSEC3 chains to insecure.
1568 1.1 christos *
1569 1.1 christos * NSEC3PARAM records containing this flag should never be published,
1570 1.1 christos * but if they are, they should be ignored by RFC 5155 compliant
1571 1.1 christos * nameservers.
1572 1.1 christos */
1573 1.1 christos #define DNS_NSEC3FLAG_NONSEC 0x10U
1574 1.1 christos
1575 1.1 christos #endif /* GENERIC_NSEC3_50_H */
1576 1.1 christos /*
1577 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1578 1.1 christos *
1579 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1580 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1581 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1582 1.1 christos *
1583 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1584 1.1 christos * information regarding copyright ownership.
1585 1.1 christos */
1586 1.1 christos
1587 1.1 christos
1588 1.1 christos #ifndef GENERIC_NSEC3PARAM_51_H
1589 1.1 christos #define GENERIC_NSEC3PARAM_51_H 1
1590 1.1 christos
1591 1.1 christos
1592 1.1 christos /*!
1593 1.1 christos * \brief Per RFC 5155 */
1594 1.1 christos
1595 1.1 christos #include <isc/iterated_hash.h>
1596 1.1 christos
1597 1.1 christos typedef struct dns_rdata_nsec3param {
1598 1.1 christos dns_rdatacommon_t common;
1599 1.1 christos isc_mem_t *mctx;
1600 1.1 christos dns_hash_t hash;
1601 1.1 christos unsigned char flags; /* DNS_NSEC3FLAG_* */
1602 1.1 christos dns_iterations_t iterations;
1603 1.1 christos unsigned char salt_length;
1604 1.1 christos unsigned char *salt;
1605 1.1 christos } dns_rdata_nsec3param_t;
1606 1.1 christos
1607 1.1 christos #endif /* GENERIC_NSEC3PARAM_51_H */
1608 1.1 christos /*
1609 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1610 1.1 christos *
1611 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1612 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1613 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1614 1.1 christos *
1615 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1616 1.1 christos * information regarding copyright ownership.
1617 1.1 christos */
1618 1.1 christos
1619 1.1 christos
1620 1.1 christos #ifndef GENERIC_TLSA_52_H
1621 1.1 christos #define GENERIC_TLSA_52_H 1
1622 1.1 christos
1623 1.1 christos /*!
1624 1.1 christos * \brief per rfc6698.txt
1625 1.1 christos */
1626 1.1 christos typedef struct dns_rdata_tlsa {
1627 1.1 christos dns_rdatacommon_t common;
1628 1.1 christos isc_mem_t *mctx;
1629 1.2 christos uint8_t usage;
1630 1.2 christos uint8_t selector;
1631 1.2 christos uint8_t match;
1632 1.2 christos uint16_t length;
1633 1.1 christos unsigned char *data;
1634 1.1 christos } dns_rdata_tlsa_t;
1635 1.1 christos
1636 1.1 christos #endif /* GENERIC_TLSA_52_H */
1637 1.1 christos /*
1638 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1639 1.1 christos *
1640 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1641 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1642 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1643 1.1 christos *
1644 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1645 1.1 christos * information regarding copyright ownership.
1646 1.1 christos */
1647 1.1 christos
1648 1.1 christos #ifndef GENERIC_SMIMEA_53_H
1649 1.1 christos #define GENERIC_SMIMEA_53_H 1
1650 1.1 christos
1651 1.1 christos typedef struct dns_rdata_tlsa dns_rdata_smimea_t;
1652 1.1 christos
1653 1.1 christos #endif /* GENERIC_SMIMEA_53_H */
1654 1.1 christos /*
1655 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1656 1.1 christos *
1657 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1658 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1659 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1660 1.1 christos *
1661 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1662 1.1 christos * information regarding copyright ownership.
1663 1.1 christos */
1664 1.1 christos
1665 1.1 christos
1666 1.1 christos #ifndef GENERIC_HIP_5_H
1667 1.1 christos #define GENERIC_HIP_5_H 1
1668 1.1 christos
1669 1.1 christos /* RFC 5205 */
1670 1.1 christos
1671 1.1 christos typedef struct dns_rdata_hip {
1672 1.1 christos dns_rdatacommon_t common;
1673 1.1 christos isc_mem_t * mctx;
1674 1.1 christos unsigned char * hit;
1675 1.1 christos unsigned char * key;
1676 1.1 christos unsigned char * servers;
1677 1.2 christos uint8_t algorithm;
1678 1.2 christos uint8_t hit_len;
1679 1.2 christos uint16_t key_len;
1680 1.2 christos uint16_t servers_len;
1681 1.1 christos /* Private */
1682 1.2 christos uint16_t offset;
1683 1.1 christos } dns_rdata_hip_t;
1684 1.1 christos
1685 1.1 christos isc_result_t
1686 1.1 christos dns_rdata_hip_first(dns_rdata_hip_t *);
1687 1.1 christos
1688 1.1 christos isc_result_t
1689 1.1 christos dns_rdata_hip_next(dns_rdata_hip_t *);
1690 1.1 christos
1691 1.1 christos void
1692 1.1 christos dns_rdata_hip_current(dns_rdata_hip_t *, dns_name_t *);
1693 1.1 christos
1694 1.1 christos #endif /* GENERIC_HIP_5_H */
1695 1.1 christos /*
1696 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1697 1.1 christos *
1698 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1699 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1700 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1701 1.1 christos *
1702 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1703 1.1 christos * information regarding copyright ownership.
1704 1.1 christos */
1705 1.1 christos
1706 1.1 christos /* */
1707 1.1 christos #ifndef GENERIC_NINFO_56_H
1708 1.1 christos #define GENERIC_NINFO_56_H 1
1709 1.1 christos
1710 1.1 christos typedef struct dns_rdata_txt_string dns_rdata_ninfo_string_t;
1711 1.1 christos
1712 1.1 christos typedef struct dns_rdata_txt dns_rdata_ninfo_t;
1713 1.1 christos
1714 1.1 christos /*
1715 1.1 christos * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1716 1.1 christos * via rdatastructpre.h and rdatastructsuf.h.
1717 1.1 christos */
1718 1.1 christos
1719 1.1 christos isc_result_t
1720 1.1 christos dns_rdata_ninfo_first(dns_rdata_ninfo_t *);
1721 1.1 christos
1722 1.1 christos isc_result_t
1723 1.1 christos dns_rdata_ninfo_next(dns_rdata_ninfo_t *);
1724 1.1 christos
1725 1.1 christos isc_result_t
1726 1.1 christos dns_rdata_ninfo_current(dns_rdata_ninfo_t *, dns_rdata_ninfo_string_t *);
1727 1.1 christos
1728 1.1 christos #endif /* GENERIC_NINFO_16_H */
1729 1.1 christos /*
1730 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1731 1.1 christos *
1732 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1733 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1734 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1735 1.1 christos *
1736 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1737 1.1 christos * information regarding copyright ownership.
1738 1.1 christos */
1739 1.1 christos
1740 1.1 christos #ifndef GENERIC_RKEY_57_H
1741 1.1 christos #define GENERIC_RKEY_57_H 1
1742 1.1 christos
1743 1.1 christos typedef struct dns_rdata_key dns_rdata_rkey_t;
1744 1.1 christos
1745 1.1 christos #endif /* GENERIC_RKEY_57_H */
1746 1.1 christos /*
1747 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1748 1.1 christos *
1749 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1750 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1751 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1752 1.1 christos *
1753 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1754 1.1 christos * information regarding copyright ownership.
1755 1.1 christos */
1756 1.1 christos
1757 1.1 christos /* http://www.iana.org/assignments/dns-parameters/TALINK/talink-completed-template */
1758 1.1 christos
1759 1.1 christos #ifndef GENERIC_TALINK_58_H
1760 1.1 christos #define GENERIC_TALINK_58_H 1
1761 1.1 christos
1762 1.1 christos typedef struct dns_rdata_talink {
1763 1.1 christos dns_rdatacommon_t common;
1764 1.1 christos isc_mem_t *mctx;
1765 1.1 christos dns_name_t prev;
1766 1.1 christos dns_name_t next;
1767 1.1 christos } dns_rdata_talink_t;
1768 1.1 christos
1769 1.1 christos #endif /* GENERIC_TALINK_58_H */
1770 1.1 christos /*
1771 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1772 1.1 christos *
1773 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1774 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1775 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1776 1.1 christos *
1777 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1778 1.1 christos * information regarding copyright ownership.
1779 1.1 christos */
1780 1.1 christos
1781 1.1 christos #ifndef GENERIC_CDS_59_H
1782 1.1 christos #define GENERIC_CDS_59_H 1
1783 1.1 christos
1784 1.1 christos /* CDS records have the same RDATA fields as DS records. */
1785 1.1 christos typedef struct dns_rdata_ds dns_rdata_cds_t;
1786 1.1 christos
1787 1.1 christos #endif /* GENERIC_CDS_59_H */
1788 1.1 christos /*
1789 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1790 1.1 christos *
1791 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1792 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1793 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1794 1.1 christos *
1795 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1796 1.1 christos * information regarding copyright ownership.
1797 1.1 christos */
1798 1.1 christos
1799 1.1 christos #ifndef GENERIC_CDNSKEY_60_H
1800 1.1 christos #define GENERIC_CDNSKEY_60_H 1
1801 1.1 christos
1802 1.1 christos /* CDNSKEY records have the same RDATA fields as DNSKEY records. */
1803 1.1 christos typedef struct dns_rdata_key dns_rdata_cdnskey_t;
1804 1.1 christos
1805 1.1 christos #endif /* GENERIC_CDNSKEY_60_H */
1806 1.1 christos /*
1807 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1808 1.1 christos *
1809 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1810 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1811 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1812 1.1 christos *
1813 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1814 1.1 christos * information regarding copyright ownership.
1815 1.1 christos */
1816 1.1 christos
1817 1.1 christos #ifndef GENERIC_OPENPGPKEY_61_H
1818 1.1 christos #define GENERIC_OPENPGPKEY_61_H 1
1819 1.1 christos
1820 1.1 christos typedef struct dns_rdata_openpgpkey {
1821 1.1 christos dns_rdatacommon_t common;
1822 1.1 christos isc_mem_t * mctx;
1823 1.2 christos uint16_t length;
1824 1.1 christos unsigned char * keyring;
1825 1.1 christos } dns_rdata_openpgpkey_t;
1826 1.1 christos
1827 1.1 christos #endif /* GENERIC_OPENPGPKEY_61_H */
1828 1.1 christos /*
1829 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1830 1.1 christos *
1831 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1832 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1833 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1834 1.1 christos *
1835 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1836 1.1 christos * information regarding copyright ownership.
1837 1.1 christos */
1838 1.1 christos
1839 1.1 christos #ifndef GENERIC_CSYNC_62_H
1840 1.1 christos #define GENERIC_CSYNC_62_H 1
1841 1.1 christos
1842 1.1 christos /*!
1843 1.1 christos * \brief Per RFC 7477
1844 1.1 christos */
1845 1.1 christos
1846 1.1 christos typedef struct dns_rdata_csync {
1847 1.1 christos dns_rdatacommon_t common;
1848 1.1 christos isc_mem_t *mctx;
1849 1.2 christos uint32_t serial;
1850 1.2 christos uint16_t flags;
1851 1.1 christos unsigned char *typebits;
1852 1.2 christos uint16_t len;
1853 1.1 christos } dns_rdata_csync_t;
1854 1.1 christos
1855 1.1 christos #endif /* GENERIC_CSYNC_62_H */
1856 1.1 christos /*
1857 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1858 1.1 christos *
1859 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1860 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1861 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1862 1.1 christos *
1863 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1864 1.1 christos * information regarding copyright ownership.
1865 1.1 christos */
1866 1.1 christos
1867 1.1 christos #ifndef GENERIC_SPF_99_H
1868 1.1 christos #define GENERIC_SPF_99_H 1
1869 1.1 christos
1870 1.1 christos
1871 1.1 christos typedef struct dns_rdata_spf_string {
1872 1.2 christos uint8_t length;
1873 1.1 christos unsigned char *data;
1874 1.1 christos } dns_rdata_spf_string_t;
1875 1.1 christos
1876 1.1 christos typedef struct dns_rdata_spf {
1877 1.1 christos dns_rdatacommon_t common;
1878 1.1 christos isc_mem_t *mctx;
1879 1.1 christos unsigned char *txt;
1880 1.2 christos uint16_t txt_len;
1881 1.1 christos /* private */
1882 1.2 christos uint16_t offset;
1883 1.1 christos } dns_rdata_spf_t;
1884 1.1 christos
1885 1.1 christos /*
1886 1.1 christos * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1887 1.1 christos * via rdatastructpre.h and rdatastructsuf.h.
1888 1.1 christos */
1889 1.1 christos #endif /* GENERIC_SPF_99_H */
1890 1.1 christos /*
1891 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1892 1.1 christos *
1893 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1894 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1895 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1896 1.1 christos *
1897 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1898 1.1 christos * information regarding copyright ownership.
1899 1.1 christos */
1900 1.1 christos
1901 1.1 christos /* */
1902 1.1 christos #ifndef GENERIC_UNSPEC_103_H
1903 1.1 christos #define GENERIC_UNSPEC_103_H 1
1904 1.1 christos
1905 1.1 christos
1906 1.1 christos typedef struct dns_rdata_unspec_t {
1907 1.1 christos dns_rdatacommon_t common;
1908 1.1 christos isc_mem_t *mctx;
1909 1.1 christos unsigned char *data;
1910 1.2 christos uint16_t datalen;
1911 1.1 christos } dns_rdata_unspec_t;
1912 1.1 christos
1913 1.1 christos #endif /* GENERIC_UNSPEC_103_H */
1914 1.1 christos /*
1915 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1916 1.1 christos *
1917 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1918 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1919 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1920 1.1 christos *
1921 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1922 1.1 christos * information regarding copyright ownership.
1923 1.1 christos */
1924 1.1 christos
1925 1.1 christos /* */
1926 1.1 christos #ifndef GENERIC_NID_104_H
1927 1.1 christos #define GENERIC_NID_104_H 1
1928 1.1 christos
1929 1.1 christos typedef struct dns_rdata_nid {
1930 1.1 christos dns_rdatacommon_t common;
1931 1.2 christos uint16_t pref;
1932 1.1 christos unsigned char nid[8];
1933 1.1 christos } dns_rdata_nid_t;
1934 1.1 christos
1935 1.1 christos #endif /* GENERIC_NID_104_H */
1936 1.1 christos /*
1937 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1938 1.1 christos *
1939 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1940 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1941 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1942 1.1 christos *
1943 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1944 1.1 christos * information regarding copyright ownership.
1945 1.1 christos */
1946 1.1 christos
1947 1.1 christos /* */
1948 1.1 christos #ifndef GENERIC_L32_105_H
1949 1.1 christos #define GENERIC_L32_105_H 1
1950 1.1 christos
1951 1.1 christos typedef struct dns_rdata_l32 {
1952 1.1 christos dns_rdatacommon_t common;
1953 1.2 christos uint16_t pref;
1954 1.1 christos struct in_addr l32;
1955 1.1 christos } dns_rdata_l32_t;
1956 1.1 christos
1957 1.1 christos #endif /* GENERIC_L32_105_H */
1958 1.1 christos /*
1959 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1960 1.1 christos *
1961 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1962 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1963 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1964 1.1 christos *
1965 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1966 1.1 christos * information regarding copyright ownership.
1967 1.1 christos */
1968 1.1 christos
1969 1.1 christos /* */
1970 1.1 christos #ifndef GENERIC_L64_106_H
1971 1.1 christos #define GENERIC_L64_106_H 1
1972 1.1 christos
1973 1.1 christos typedef struct dns_rdata_l64 {
1974 1.1 christos dns_rdatacommon_t common;
1975 1.2 christos uint16_t pref;
1976 1.1 christos unsigned char l64[8];
1977 1.1 christos } dns_rdata_l64_t;
1978 1.1 christos
1979 1.1 christos #endif /* GENERIC_L64_106_H */
1980 1.1 christos /*
1981 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1982 1.1 christos *
1983 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
1984 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
1985 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1986 1.1 christos *
1987 1.1 christos * See the COPYRIGHT file distributed with this work for additional
1988 1.1 christos * information regarding copyright ownership.
1989 1.1 christos */
1990 1.1 christos
1991 1.1 christos /* */
1992 1.1 christos #ifndef GENERIC_LP_107_H
1993 1.1 christos #define GENERIC_LP_107_H 1
1994 1.1 christos
1995 1.1 christos typedef struct dns_rdata_lp {
1996 1.1 christos dns_rdatacommon_t common;
1997 1.1 christos isc_mem_t *mctx;
1998 1.2 christos uint16_t pref;
1999 1.1 christos dns_name_t lp;
2000 1.1 christos } dns_rdata_lp_t;
2001 1.1 christos
2002 1.1 christos #endif /* GENERIC_LP_107_H */
2003 1.1 christos /*
2004 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2005 1.1 christos *
2006 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2007 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2008 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2009 1.1 christos *
2010 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2011 1.1 christos * information regarding copyright ownership.
2012 1.1 christos */
2013 1.1 christos
2014 1.1 christos /* */
2015 1.1 christos #ifndef GENERIC_EUI48_108_H
2016 1.1 christos #define GENERIC_EUI48_108_H 1
2017 1.1 christos
2018 1.1 christos typedef struct dns_rdata_eui48 {
2019 1.1 christos dns_rdatacommon_t common;
2020 1.1 christos unsigned char eui48[6];
2021 1.1 christos } dns_rdata_eui48_t;
2022 1.1 christos
2023 1.1 christos #endif /* GENERIC_EUI48_10k_H */
2024 1.1 christos /*
2025 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2026 1.1 christos *
2027 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2028 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2029 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2030 1.1 christos *
2031 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2032 1.1 christos * information regarding copyright ownership.
2033 1.1 christos */
2034 1.1 christos
2035 1.1 christos /* */
2036 1.1 christos #ifndef GENERIC_EUI64_109_H
2037 1.1 christos #define GENERIC_EUI64_109_H 1
2038 1.1 christos
2039 1.1 christos typedef struct dns_rdata_eui64 {
2040 1.1 christos dns_rdatacommon_t common;
2041 1.1 christos unsigned char eui64[8];
2042 1.1 christos } dns_rdata_eui64_t;
2043 1.1 christos
2044 1.1 christos #endif /* GENERIC_EUI64_10k_H */
2045 1.1 christos /*
2046 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2047 1.1 christos *
2048 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2049 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2050 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2051 1.1 christos *
2052 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2053 1.1 christos * information regarding copyright ownership.
2054 1.1 christos */
2055 1.1 christos
2056 1.1 christos #ifndef GENERIC_TKEY_249_H
2057 1.1 christos #define GENERIC_TKEY_249_H 1
2058 1.1 christos
2059 1.1 christos
2060 1.1 christos /*!
2061 1.1 christos * \brief Per draft-ietf-dnsind-tkey-00.txt */
2062 1.1 christos
2063 1.1 christos typedef struct dns_rdata_tkey {
2064 1.1 christos dns_rdatacommon_t common;
2065 1.1 christos isc_mem_t * mctx;
2066 1.1 christos dns_name_t algorithm;
2067 1.2 christos uint32_t inception;
2068 1.2 christos uint32_t expire;
2069 1.2 christos uint16_t mode;
2070 1.2 christos uint16_t error;
2071 1.2 christos uint16_t keylen;
2072 1.1 christos unsigned char * key;
2073 1.2 christos uint16_t otherlen;
2074 1.1 christos unsigned char * other;
2075 1.1 christos } dns_rdata_tkey_t;
2076 1.1 christos
2077 1.1 christos
2078 1.1 christos #endif /* GENERIC_TKEY_249_H */
2079 1.1 christos /*
2080 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2081 1.1 christos *
2082 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2083 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2084 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2085 1.1 christos *
2086 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2087 1.1 christos * information regarding copyright ownership.
2088 1.1 christos */
2089 1.1 christos
2090 1.1 christos
2091 1.1 christos #ifndef ANY_255_TSIG_250_H
2092 1.1 christos #define ANY_255_TSIG_250_H 1
2093 1.1 christos
2094 1.1 christos /*% RFC2845 */
2095 1.1 christos typedef struct dns_rdata_any_tsig {
2096 1.1 christos dns_rdatacommon_t common;
2097 1.1 christos isc_mem_t * mctx;
2098 1.1 christos dns_name_t algorithm;
2099 1.2 christos uint64_t timesigned;
2100 1.2 christos uint16_t fudge;
2101 1.2 christos uint16_t siglen;
2102 1.1 christos unsigned char * signature;
2103 1.2 christos uint16_t originalid;
2104 1.2 christos uint16_t error;
2105 1.2 christos uint16_t otherlen;
2106 1.1 christos unsigned char * other;
2107 1.1 christos } dns_rdata_any_tsig_t;
2108 1.1 christos
2109 1.1 christos #endif /* ANY_255_TSIG_250_H */
2110 1.1 christos /*
2111 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2112 1.1 christos *
2113 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2114 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2115 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2116 1.1 christos *
2117 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2118 1.1 christos * information regarding copyright ownership.
2119 1.1 christos */
2120 1.1 christos
2121 1.1 christos #ifndef GENERIC_URI_256_H
2122 1.1 christos #define GENERIC_URI_256_H 1
2123 1.1 christos
2124 1.1 christos
2125 1.1 christos typedef struct dns_rdata_uri {
2126 1.1 christos dns_rdatacommon_t common;
2127 1.1 christos isc_mem_t * mctx;
2128 1.2 christos uint16_t priority;
2129 1.2 christos uint16_t weight;
2130 1.1 christos unsigned char * target;
2131 1.2 christos uint16_t tgt_len;
2132 1.1 christos } dns_rdata_uri_t;
2133 1.1 christos
2134 1.1 christos #endif /* GENERIC_URI_256_H */
2135 1.1 christos /*
2136 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2137 1.1 christos *
2138 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2139 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2140 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2141 1.1 christos *
2142 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2143 1.1 christos * information regarding copyright ownership.
2144 1.1 christos */
2145 1.1 christos
2146 1.1 christos #ifndef GENERIC_CAA_257_H
2147 1.1 christos #define GENERIC_CAA_257_H 1
2148 1.1 christos
2149 1.1 christos
2150 1.1 christos typedef struct dns_rdata_caa {
2151 1.1 christos dns_rdatacommon_t common;
2152 1.1 christos isc_mem_t * mctx;
2153 1.2 christos uint8_t flags;
2154 1.1 christos unsigned char * tag;
2155 1.2 christos uint8_t tag_len;
2156 1.1 christos unsigned char *value;
2157 1.2 christos uint16_t value_len;
2158 1.1 christos } dns_rdata_caa_t;
2159 1.1 christos
2160 1.1 christos #endif /* GENERIC_CAA_257_H */
2161 1.1 christos /*
2162 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2163 1.1 christos *
2164 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2165 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2166 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2167 1.1 christos *
2168 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2169 1.1 christos * information regarding copyright ownership.
2170 1.1 christos */
2171 1.1 christos
2172 1.1 christos #ifndef GENERIC_AVC_258_H
2173 1.1 christos #define GENERIC_AVC_258_H 1
2174 1.1 christos
2175 1.1 christos typedef dns_rdata_txt_string_t dns_rdata_avc_string_t;
2176 1.1 christos
2177 1.1 christos typedef struct dns_rdata_avc {
2178 1.1 christos dns_rdatacommon_t common;
2179 1.1 christos isc_mem_t *mctx;
2180 1.1 christos unsigned char *data;
2181 1.2 christos uint16_t length;
2182 1.1 christos /* private */
2183 1.2 christos uint16_t offset;
2184 1.1 christos } dns_rdata_avc_t;
2185 1.1 christos
2186 1.1 christos /*
2187 1.1 christos * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
2188 1.1 christos * via rdatastructpre.h and rdatastructsuf.h.
2189 1.1 christos */
2190 1.1 christos #endif /* GENERIC_AVC_258_H */
2191 1.1 christos /*
2192 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2193 1.1 christos *
2194 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2195 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2196 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2197 1.1 christos *
2198 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2199 1.1 christos * information regarding copyright ownership.
2200 1.1 christos */
2201 1.1 christos
2202 1.1 christos #ifndef GENERIC_DOA_259_H
2203 1.1 christos #define GENERIC_DOA_259_H 1
2204 1.1 christos
2205 1.1 christos typedef struct dns_rdata_doa {
2206 1.1 christos dns_rdatacommon_t common;
2207 1.1 christos isc_mem_t * mctx;
2208 1.1 christos unsigned char * mediatype;
2209 1.1 christos unsigned char * data;
2210 1.2 christos uint32_t enterprise;
2211 1.2 christos uint32_t type;
2212 1.2 christos uint16_t data_len;
2213 1.2 christos uint8_t location;
2214 1.2 christos uint8_t mediatype_len;
2215 1.1 christos } dns_rdata_doa_t;
2216 1.1 christos
2217 1.1 christos #endif /* GENERIC_DOA_259_H */
2218 1.1 christos /*
2219 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2220 1.1 christos *
2221 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2222 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2223 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2224 1.1 christos *
2225 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2226 1.1 christos * information regarding copyright ownership.
2227 1.1 christos */
2228 1.1 christos
2229 1.1 christos #ifndef GENERIC_TA_32768_H
2230 1.1 christos #define GENERIC_TA_32768_H 1
2231 1.1 christos
2232 1.1 christos /*
2233 1.1 christos * TA records are identical to DS records.
2234 1.1 christos */
2235 1.1 christos typedef struct dns_rdata_ds dns_rdata_ta_t;
2236 1.1 christos
2237 1.1 christos #endif /* GENERIC_TA_32768_H */
2238 1.1 christos /*
2239 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2240 1.1 christos *
2241 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2242 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2243 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2244 1.1 christos *
2245 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2246 1.1 christos * information regarding copyright ownership.
2247 1.1 christos */
2248 1.1 christos
2249 1.1 christos
2250 1.1 christos /* draft-ietf-dnsext-delegation-signer-05.txt */
2251 1.1 christos #ifndef GENERIC_DLV_32769_H
2252 1.1 christos #define GENERIC_DLV_32769_H 1
2253 1.1 christos
2254 1.1 christos typedef struct dns_rdata_ds dns_rdata_dlv_t;
2255 1.1 christos
2256 1.1 christos #endif /* GENERIC_DLV_32769_H */
2257 1.1 christos /*
2258 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2259 1.1 christos *
2260 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2261 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2262 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2263 1.1 christos *
2264 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2265 1.1 christos * information regarding copyright ownership.
2266 1.1 christos */
2267 1.1 christos
2268 1.1 christos #ifndef GENERIC_KEYDATA_65533_H
2269 1.1 christos #define GENERIC_KEYDATA_65533_H 1
2270 1.1 christos
2271 1.1 christos
2272 1.1 christos typedef struct dns_rdata_keydata {
2273 1.1 christos dns_rdatacommon_t common;
2274 1.1 christos isc_mem_t * mctx;
2275 1.2 christos uint32_t refresh; /* Timer for refreshing data */
2276 1.2 christos uint32_t addhd; /* Hold-down timer for adding */
2277 1.2 christos uint32_t removehd; /* Hold-down timer for removing */
2278 1.2 christos uint16_t flags; /* Copy of DNSKEY_48 */
2279 1.2 christos uint8_t protocol;
2280 1.2 christos uint8_t algorithm;
2281 1.2 christos uint16_t datalen;
2282 1.1 christos unsigned char * data;
2283 1.1 christos } dns_rdata_keydata_t;
2284 1.1 christos
2285 1.1 christos #endif /* GENERIC_KEYDATA_65533_H */
2286 1.1 christos /*
2287 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2288 1.1 christos *
2289 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public
2290 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this
2291 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2292 1.1 christos *
2293 1.1 christos * See the COPYRIGHT file distributed with this work for additional
2294 1.1 christos * information regarding copyright ownership.
2295 1.1 christos */
2296 1.1 christos
2297 1.1 christos
2298 1.1 christos ISC_LANG_ENDDECLS
2299 1.1 christos
2300 1.1 christos #endif /* DNS_RDATASTRUCT_H */
2301