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
00038 struct ldns_struct_zone
00039 {
00041 ldns_rr *_soa;
00042
00043 ldns_rr_list *_rrs;
00044
00045 };
00046 typedef struct ldns_struct_zone ldns_zone;
00047
00052 ldns_zone * ldns_zone_new(void);
00053
00059 ldns_rr * ldns_zone_soa(const ldns_zone *z);
00060
00066 uint16_t ldns_zone_rr_count(const ldns_zone *z);
00067
00073 void ldns_zone_set_soa(ldns_zone *z, ldns_rr *soa);
00074
00082 ldns_rr_list * ldns_zone_rrs(const ldns_zone *z);
00083
00089 void ldns_zone_set_rrs(ldns_zone *z, ldns_rr_list *rrlist);
00090
00098 bool ldns_zone_push_rr_list(ldns_zone *z, ldns_rr_list *list);
00099
00107 bool ldns_zone_push_rr(ldns_zone *z, ldns_rr *rr);
00108
00120 ldns_rr_list *ldns_zone_glue_rr_list(const ldns_zone *z);
00121
00132 ldns_status ldns_zone_new_frm_fp(ldns_zone **z, FILE *fp, ldns_rdf *origin, uint16_t ttl, ldns_rr_class c);
00133
00145 ldns_status ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, ldns_rdf *origin, uint16_t ttl, ldns_rr_class c, int *line_nr);
00146
00151 void ldns_zone_free(ldns_zone *zone);
00152
00158 void ldns_zone_deep_free(ldns_zone *zone);
00159
00164 void ldns_zone_sort(ldns_zone *zone);
00165
00166 #endif