Main Page
Related Pages
Data Structures
Files
File List
Globals
ldns
dnssec_zone.h
Go to the documentation of this file.
1
/*
2
* special zone file structures and functions for better dnssec handling
3
*
4
* A zone contains a SOA dnssec_zone_rrset, and an AVL tree of 'normal'
5
* dnssec_zone_rrsets, indexed by name and type
6
*/
7
8
#ifndef LDNS_DNSSEC_ZONE_H
9
#define LDNS_DNSSEC_ZONE_H
10
11
#include <
ldns/rbtree.h
>
12
#include <
ldns/host2str.h
>
13
14
#ifdef __cplusplus
15
extern
"C"
{
16
#endif
17
21
typedef
struct
ldns_struct_dnssec_rrs
ldns_dnssec_rrs
;
22
struct
ldns_struct_dnssec_rrs
23
{
24
ldns_rr
*
rr
;
25
ldns_dnssec_rrs
*
next
;
26
};
27
31
typedef
struct
ldns_struct_dnssec_rrsets
ldns_dnssec_rrsets
;
32
struct
ldns_struct_dnssec_rrsets
33
{
34
ldns_dnssec_rrs
*
rrs
;
35
ldns_rr_type
type
;
36
ldns_dnssec_rrs
*
signatures
;
37
ldns_dnssec_rrsets
*
next
;
38
};
39
44
typedef
struct
ldns_struct_dnssec_name
ldns_dnssec_name
;
45
struct
ldns_struct_dnssec_name
46
{
51
ldns_rdf
*
name
;
59
bool
name_alloced
;
63
ldns_dnssec_rrsets
*
rrsets
;
67
ldns_rr
*
nsec
;
71
ldns_dnssec_rrs
*
nsec_signatures
;
81
bool
is_glue
;
85
ldns_rdf
*
hashed_name
;
86
};
87
91
struct
ldns_struct_dnssec_zone
{
93
ldns_dnssec_name
*
soa
;
95
ldns_rbtree_t
*
names
;
96
};
97
typedef
struct
ldns_struct_dnssec_zone
ldns_dnssec_zone
;
98
103
ldns_dnssec_rrs
*
ldns_dnssec_rrs_new
();
104
111
void
ldns_dnssec_rrs_free
(
ldns_dnssec_rrs
*rrs);
112
119
void
ldns_dnssec_rrs_deep_free
(
ldns_dnssec_rrs
*rrs);
120
128
ldns_status
ldns_dnssec_rrs_add_rr
(
ldns_dnssec_rrs
*rrs,
ldns_rr
*rr);
129
136
void
ldns_dnssec_rrs_print
(FILE *out,
ldns_dnssec_rrs
*rrs);
137
145
void
ldns_dnssec_rrs_print_fmt
(FILE *out,
146
const
ldns_output_format
*fmt,
ldns_dnssec_rrs
*rrs);
147
152
ldns_dnssec_rrsets
*
ldns_dnssec_rrsets_new
();
153
160
void
ldns_dnssec_rrsets_free
(
ldns_dnssec_rrsets
*rrsets);
161
168
void
ldns_dnssec_rrsets_deep_free
(
ldns_dnssec_rrsets
*rrsets);
169
176
ldns_rr_type
ldns_dnssec_rrsets_type
(
ldns_dnssec_rrsets
*rrsets);
177
185
ldns_status
ldns_dnssec_rrsets_set_type
(
ldns_dnssec_rrsets
*rrsets,
186
ldns_rr_type
type);
187
196
ldns_status
ldns_dnssec_rrsets_add_rr
(
ldns_dnssec_rrsets
*rrsets,
ldns_rr
*rr);
197
205
void
ldns_dnssec_rrsets_print
(FILE *out,
206
ldns_dnssec_rrsets
*rrsets,
207
bool
follow);
208
217
void
ldns_dnssec_rrsets_print_fmt
(FILE *out,
218
const
ldns_output_format
*fmt,
219
ldns_dnssec_rrsets
*rrsets,
220
bool
follow);
221
222
227
ldns_dnssec_name
*
ldns_dnssec_name_new
();
228
234
ldns_dnssec_name
*
ldns_dnssec_name_new_frm_rr
(
ldns_rr
*rr);
235
242
void
ldns_dnssec_name_free
(
ldns_dnssec_name
*name);
243
250
void
ldns_dnssec_name_deep_free
(
ldns_dnssec_name
*name);
251
258
ldns_rdf
*
ldns_dnssec_name_name
(
ldns_dnssec_name
*name);
259
260
267
void
ldns_dnssec_name_set_name
(
ldns_dnssec_name
*name,
268
ldns_rdf
*dname);
280
bool
ldns_dnssec_name_is_glue
(
ldns_dnssec_name
*name);
281
288
void
ldns_dnssec_name_set_nsec
(
ldns_dnssec_name
*name,
ldns_rr
*nsec);
289
300
int
ldns_dnssec_name_cmp
(
const
void
*a,
const
void
*b);
301
310
ldns_status
ldns_dnssec_name_add_rr
(
ldns_dnssec_name
*name,
311
ldns_rr
*rr);
312
320
ldns_dnssec_rrsets
*
ldns_dnssec_name_find_rrset
(
ldns_dnssec_name
*name,
321
ldns_rr_type
type);
322
331
ldns_dnssec_rrsets
*
ldns_dnssec_zone_find_rrset
(
ldns_dnssec_zone
*zone,
332
ldns_rdf
*dname,
333
ldns_rr_type
type);
334
342
void
ldns_dnssec_name_print
(FILE *out,
ldns_dnssec_name
*name);
343
352
void
ldns_dnssec_name_print_fmt
(FILE *out,
353
const
ldns_output_format
*fmt,
ldns_dnssec_name
*name);
354
359
ldns_dnssec_zone
*
ldns_dnssec_zone_new
();
360
371
ldns_status
ldns_dnssec_zone_new_frm_fp
(
ldns_dnssec_zone
** z, FILE* fp,
372
ldns_rdf
* origin, uint32_t ttl,
ldns_rr_class
c);
373
385
ldns_status
ldns_dnssec_zone_new_frm_fp_l
(
ldns_dnssec_zone
** z, FILE* fp,
386
ldns_rdf
* origin, uint32_t ttl,
ldns_rr_class
c,
int
* line_nr);
387
393
void
ldns_dnssec_zone_free
(
ldns_dnssec_zone
*zone);
394
400
void
ldns_dnssec_zone_deep_free
(
ldns_dnssec_zone
*zone);
401
412
ldns_status
ldns_dnssec_zone_add_rr
(
ldns_dnssec_zone
*zone,
413
ldns_rr
*rr);
414
422
void
ldns_dnssec_zone_names_print
(FILE *out,
ldns_rbtree_t
*tree,
bool
print_soa);
423
432
void
ldns_dnssec_zone_names_print_fmt
(FILE *out,
const
ldns_output_format
*fmt,
433
ldns_rbtree_t
*tree,
bool
print_soa);
434
441
void
ldns_dnssec_zone_print
(FILE *out,
ldns_dnssec_zone
*zone);
442
450
void
ldns_dnssec_zone_print_fmt
(FILE *out,
451
const
ldns_output_format
*fmt,
ldns_dnssec_zone
*zone);
452
460
ldns_status
ldns_dnssec_zone_add_empty_nonterminals
(
ldns_dnssec_zone
*zone);
461
469
bool
ldns_dnssec_zone_is_nsec3_optout
(
ldns_dnssec_zone
* zone);
470
471
#ifdef __cplusplus
472
}
473
#endif
474
475
#endif
Generated on Wed Nov 21 2012 21:24:23 for ldns by
1.8.1.2