zone.h

Go to the documentation of this file.
00001 
00016 #ifndef _LDNS_ZONE_H
00017 #define _LDNS_ZONE_H
00018 
00019 #include <ldns/common.h>
00020 #include <ldns/rdata.h>
00021 #include <ldns/rr.h>
00022 #include <ldns/error.h>
00023 
00030 struct ldns_struct_zone
00031 {
00033         ldns_rr         *_soa;
00034         /* basicly a zone is a list of rr's */
00035         ldns_rr_list    *_rrs;
00036         /* we could change this to be a b-tree etc etc todo */
00037 };
00038 typedef struct ldns_struct_zone ldns_zone;      
00039         
00043 ldns_zone * ldns_zone_new(void);
00044 
00049 ldns_rr * ldns_zone_soa(ldns_zone *z);
00050 
00056 uint16_t ldns_zone_rr_count(ldns_zone *z);
00057 
00062 void ldns_zone_set_soa(ldns_zone *z, ldns_rr *soa);
00063 
00068 ldns_rr_list * ldns_zone_rrs(ldns_zone *z);
00069 
00074 void ldns_zone_set_rrs(ldns_zone *z, ldns_rr_list *rrlist);
00075 
00083 bool ldns_zone_push_rr_list(ldns_zone *z, ldns_rr_list *list);
00084 
00092 bool ldns_zone_push_rr(ldns_zone *z, ldns_rr *rr);
00093 
00101 ldns_rr_list *ldns_zone_glue_rr_list(ldns_zone *z);
00102 
00103 ldns_zone *
00104 ldns_zone_new_frm_fp(FILE *fp, ldns_rdf *origin, uint16_t ttl, ldns_rr_class c);
00105 
00106 ldns_zone *
00107 ldns_zone_new_frm_fp_l(FILE *fp, ldns_rdf *origin, uint16_t ttl, ldns_rr_class c, int *line_nr);
00108 
00113 void ldns_zone_free(ldns_zone *zone);
00114 
00120 void ldns_zone_deep_free(ldns_zone *zone);
00121 
00122 
00123 #endif /* LDNS_ZONE_H */

Generated on Mon Feb 20 15:49:56 2006 for ldns by  doxygen 1.4.6