zone.h
Go to the documentation of this file.
1 
23 #ifndef LDNS_ZONE_H
24 #define LDNS_ZONE_H
25 
26 #include <ldns/common.h>
27 #include <ldns/rdata.h>
28 #include <ldns/rr.h>
29 #include <ldns/error.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
43 {
46  /* basicly a zone is a list of rr's */
48  /* we could change this to be a b-tree etc etc todo */
49 };
50 typedef struct ldns_struct_zone ldns_zone;
51 
56 ldns_zone * ldns_zone_new(void);
57 
63 ldns_rr * ldns_zone_soa(const ldns_zone *z);
64 
70 size_t ldns_zone_rr_count(const ldns_zone *z);
71 
77 void ldns_zone_set_soa(ldns_zone *z, ldns_rr *soa);
78 
87 
93 void ldns_zone_set_rrs(ldns_zone *z, ldns_rr_list *rrlist);
94 
103 
111 bool ldns_zone_push_rr(ldns_zone *z, ldns_rr *rr);
112 
127 
138 ldns_status ldns_zone_new_frm_fp(ldns_zone **z, FILE *fp, ldns_rdf *origin, uint32_t ttl, ldns_rr_class c);
139 
151 ldns_status ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, ldns_rdf *origin, uint32_t ttl, ldns_rr_class c, int *line_nr);
152 
157 void ldns_zone_free(ldns_zone *zone);
158 
164 void ldns_zone_deep_free(ldns_zone *zone);
165 
170 void ldns_zone_sort(ldns_zone *zone);
171 
172 #ifdef __cplusplus
173 }
174 #endif
175 
176 #endif /* LDNS_ZONE_H */