Lines Matching refs:rrset

192 	struct rrsetinfo *rrset = NULL;
263 /* initialize rrset */
264 rrset = calloc(1, sizeof(struct rrsetinfo));
265 if (rrset == NULL) {
269 rrset->rri_rdclass = response->query->class;
270 rrset->rri_rdtype = response->query->type;
271 rrset->rri_ttl = response->answer->ttl;
272 rrset->rri_nrdatas = response->header.ancount;
277 rrset->rri_flags |= RRSET_VALIDATED;
281 rrset->rri_name = strdup(response->answer->name);
282 if (rrset->rri_name == NULL) {
288 rrset->rri_nrdatas = count_dns_rr(response->answer, rrset->rri_rdclass,
289 rrset->rri_rdtype);
290 rrset->rri_nsigs = count_dns_rr(response->answer, rrset->rri_rdclass,
294 rrset->rri_rdatas = calloc(rrset->rri_nrdatas,
296 if (rrset->rri_rdatas == NULL) {
302 if (rrset->rri_nsigs > 0) {
303 rrset->rri_sigs = calloc(rrset->rri_nsigs, sizeof(struct rdatainfo));
304 if (rrset->rri_sigs == NULL) {
316 if (rr->class == rrset->rri_rdclass &&
317 rr->type == rrset->rri_rdtype)
318 rdata = &rrset->rri_rdatas[index_ans++];
320 if (rr->class == rrset->rri_rdclass &&
322 rdata = &rrset->rri_sigs[index_sig++];
337 *res = rrset;
341 if (rrset != NULL)
342 freerrset(rrset);
349 freerrset(struct rrsetinfo *rrset)
353 if (rrset == NULL)
356 if (rrset->rri_rdatas) {
357 for (i = 0; i < rrset->rri_nrdatas; i++) {
358 if (rrset->rri_rdatas[i].rdi_data == NULL)
360 free(rrset->rri_rdatas[i].rdi_data);
362 free(rrset->rri_rdatas);
365 if (rrset->rri_sigs) {
366 for (i = 0; i < rrset->rri_nsigs; i++) {
367 if (rrset->rri_sigs[i].rdi_data == NULL)
369 free(rrset->rri_sigs[i].rdi_data);
371 free(rrset->rri_sigs);
374 if (rrset->rri_name)
375 free(rrset->rri_name);
376 free(rrset);