zone.h

Go to the documentation of this file.
00001 
00023 #ifndef LDNS_ZONE_H
00024 #define LDNS_ZONE_H
00025 
00026 #include <ldns/common.h>
00027 #include <ldns/rdata.h>
00028 #include <ldns/rr.h>
00029 #include <ldns/error.h>
00030 
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034 
00042 struct ldns_struct_zone
00043 {
00045         ldns_rr         *_soa;
00046         /* basicly a zone is a list of rr's */
00047         ldns_rr_list    *_rrs;
00048         /* we could change this to be a b-tree etc etc todo */
00049 };
00050 typedef struct ldns_struct_zone ldns_zone;      
00051         
00056 ldns_zone * ldns_zone_new(void);
00057 
00063 ldns_rr * ldns_zone_soa(const ldns_zone *z);
00064 
00070 size_t ldns_zone_rr_count(const ldns_zone *z);
00071 
00077 void ldns_zone_set_soa(ldns_zone *z, ldns_rr *soa);
00078 
00086 ldns_rr_list * ldns_zone_rrs(const ldns_zone *z);
00087 
00093 void ldns_zone_set_rrs(ldns_zone *z, ldns_rr_list *rrlist);
00094 
00102 bool ldns_zone_push_rr_list(ldns_zone *z, ldns_rr_list *list);
00103 
00111 bool ldns_zone_push_rr(ldns_zone *z, ldns_rr *rr);
00112 
00126 ldns_rr_list *ldns_zone_glue_rr_list(const ldns_zone *z);
00127 
00138 ldns_status ldns_zone_new_frm_fp(ldns_zone **z, FILE *fp, ldns_rdf *origin, uint32_t ttl, ldns_rr_class c);
00139 
00151 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);
00152 
00157 void ldns_zone_free(ldns_zone *zone);
00158 
00164 void ldns_zone_deep_free(ldns_zone *zone);
00165 
00170 void ldns_zone_sort(ldns_zone *zone);
00171 
00172 #ifdef __cplusplus
00173 }
00174 #endif
00175 
00176 #endif /* LDNS_ZONE_H */

Generated on 14 May 2016 for ldns by  doxygen 1.6.1