Lines Matching refs:rrset

69 	struct rrsetinfo *rrset = NULL;  in getrrsetbyname()  local
121 rrset = calloc(1, sizeof(struct rrsetinfo)); in getrrsetbyname()
122 if (rrset == NULL) { in getrrsetbyname()
128 rrset->rri_nrdatas = ldns_rr_list_rr_count(rrdata); in getrrsetbyname()
129 if (!rrset->rri_nrdatas) { in getrrsetbyname()
136 if ((rrset->rri_name = malloc(len)) == NULL) { in getrrsetbyname()
140 memcpy(rrset->rri_name, in getrrsetbyname()
143 rrset->rri_rdclass = ldns_rr_get_class(ldns_rr_list_rr(rrdata, 0)); in getrrsetbyname()
144 rrset->rri_rdtype = ldns_rr_get_type(ldns_rr_list_rr(rrdata, 0)); in getrrsetbyname()
145 rrset->rri_ttl = ldns_rr_ttl(ldns_rr_list_rr(rrdata, 0)); in getrrsetbyname()
147 debug2("ldns: got %u answers from DNS", rrset->rri_nrdatas); in getrrsetbyname()
151 rrset->rri_flags |= RRSET_VALIDATED; in getrrsetbyname()
160 rrset->rri_nsigs = ldns_rr_list_rr_count(rrsigs); in getrrsetbyname()
162 rrset->rri_nsigs, LDNS_RR_TYPE_RRSIG); in getrrsetbyname()
166 rrset->rri_flags |= RRSET_VALIDATED; in getrrsetbyname()
177 rrset->rri_rdatas = calloc(rrset->rri_nrdatas, in getrrsetbyname()
180 if (rrset->rri_rdatas == NULL) { in getrrsetbyname()
186 if (rrset->rri_nsigs > 0) { in getrrsetbyname()
187 rrset->rri_sigs = calloc(rrset->rri_nsigs, in getrrsetbyname()
190 if (rrset->rri_sigs == NULL) { in getrrsetbyname()
201 if (ldns_rr_get_class(rr) == rrset->rri_rdclass && in getrrsetbyname()
202 ldns_rr_get_type(rr) == rrset->rri_rdtype) { in getrrsetbyname()
203 rdata = &rrset->rri_rdatas[index_ans++]; in getrrsetbyname()
206 if (rr->_rr_class == rrset->rri_rdclass && in getrrsetbyname()
208 rrset->rri_sigs) { in getrrsetbyname()
209 rdata = &rrset->rri_sigs[index_sig++]; in getrrsetbyname()
237 *res = rrset; in getrrsetbyname()
253 freerrset(struct rrsetinfo *rrset) in freerrset() argument
257 if (rrset == NULL) in freerrset()
260 if (rrset->rri_rdatas) { in freerrset()
261 for (i = 0; i < rrset->rri_nrdatas; i++) { in freerrset()
262 if (rrset->rri_rdatas[i].rdi_data == NULL) in freerrset()
264 free(rrset->rri_rdatas[i].rdi_data); in freerrset()
266 free(rrset->rri_rdatas); in freerrset()
269 if (rrset->rri_sigs) { in freerrset()
270 for (i = 0; i < rrset->rri_nsigs; i++) { in freerrset()
271 if (rrset->rri_sigs[i].rdi_data == NULL) in freerrset()
273 free(rrset->rri_sigs[i].rdi_data); in freerrset()
275 free(rrset->rri_sigs); in freerrset()
278 if (rrset->rri_name) in freerrset()
279 free(rrset->rri_name); in freerrset()
280 free(rrset); in freerrset()