Lines Matching refs:rrset

201     rrset_type* rrset = NULL;  in rrset_create()  local
205 CHECKALLOC(rrset = (rrset_type*) malloc(sizeof(rrset_type))); in rrset_create()
206 if (!rrset) { in rrset_create()
211 rrset->next = NULL; in rrset_create()
212 rrset->rrs = NULL; in rrset_create()
213 rrset->domain = NULL; in rrset_create()
214 rrset->zone = zone; in rrset_create()
215 rrset->rrtype = type; in rrset_create()
216 rrset->rr_count = 0; in rrset_create()
217 collection_create_array(&rrset->rrsigs, sizeof(rrsig_type), rrset->zone->rrstore); in rrset_create()
218 rrset->needs_signing = 0; in rrset_create()
219 return rrset; in rrset_create()
236 rrset_lookup_rr(rrset_type* rrset, ldns_rr* rr) in rrset_lookup_rr() argument
242 if (!rrset || !rr || rrset->rr_count <= 0) { in rrset_lookup_rr()
245 for (i=0; i < rrset->rr_count; i++) { in rrset_lookup_rr()
246 lstatus = util_dnssec_rrs_compare(rrset->rrs[i].rr, rr, &cmp); in rrset_lookup_rr()
253 return &rrset->rrs[i]; in rrset_lookup_rr()
263 rrset_lookup_ttl(rrset_type* rrset, uint32_t default_ttl) in rrset_lookup_ttl() argument
265 for (int i = 0; i < rrset->rr_count; i++) { in rrset_lookup_ttl()
266 if (!rrset->rrs[i].is_added) continue; in rrset_lookup_ttl()
267 return ldns_rr_ttl(rrset->rrs[i].rr); in rrset_lookup_ttl()
278 rrset_count_rr_is_added(rrset_type* rrset) in rrset_count_rr_is_added() argument
282 if (!rrset) { in rrset_count_rr_is_added()
285 for (i=0; i < rrset->rr_count; i++) { in rrset_count_rr_is_added()
286 if (rrset->rrs[i].is_added) { in rrset_count_rr_is_added()
299 rrset_add_rr(rrset_type* rrset, ldns_rr* rr) in rrset_add_rr() argument
303 ods_log_assert(rrset); in rrset_add_rr()
305 ods_log_assert(rrset->rrtype == ldns_rr_get_type(rr)); in rrset_add_rr()
307 rrs_old = rrset->rrs; in rrset_add_rr()
308 CHECKALLOC(rrset->rrs = (rr_type*) malloc((rrset->rr_count + 1) * sizeof(rr_type))); in rrset_add_rr()
309 if (!rrset->rrs) { in rrset_add_rr()
314 memcpy(rrset->rrs, rrs_old, (rrset->rr_count) * sizeof(rr_type)); in rrset_add_rr()
317 rrset->rr_count++; in rrset_add_rr()
318 rrset->rrs[rrset->rr_count - 1].owner = rrset->domain; in rrset_add_rr()
319 rrset->rrs[rrset->rr_count - 1].rr = rr; in rrset_add_rr()
320 rrset->rrs[rrset->rr_count - 1].exists = 0; in rrset_add_rr()
321 rrset->rrs[rrset->rr_count - 1].is_added = 1; in rrset_add_rr()
322 rrset->rrs[rrset->rr_count - 1].is_removed = 0; in rrset_add_rr()
323 rrset->needs_signing = 1; in rrset_add_rr()
325 return &rrset->rrs[rrset->rr_count -1]; in rrset_add_rr()
334 rrset_del_rr(rrset_type* rrset, uint16_t rrnum) in rrset_del_rr() argument
338 ods_log_assert(rrset); in rrset_del_rr()
339 ods_log_assert(rrnum < rrset->rr_count); in rrset_del_rr()
341 log_rr(rrset->rrs[rrnum].rr, "-RR", LOG_DEEEBUG); in rrset_del_rr()
342 rrset->rrs[rrnum].owner = NULL; /* who owns owner? */ in rrset_del_rr()
343 ldns_rr_free(rrset->rrs[rrnum].rr); in rrset_del_rr()
344 while (rrnum < rrset->rr_count-1) { in rrset_del_rr()
345 rrset->rrs[rrnum] = rrset->rrs[rrnum+1]; in rrset_del_rr()
348 memset(&rrset->rrs[rrset->rr_count-1], 0, sizeof(rr_type)); in rrset_del_rr()
349 rrs_orig = rrset->rrs; in rrset_del_rr()
350 CHECKALLOC(rrset->rrs = (rr_type*) malloc((rrset->rr_count - 1) * sizeof(rr_type))); in rrset_del_rr()
351 if(!rrset->rrs) { in rrset_del_rr()
355 memcpy(rrset->rrs, rrs_orig, (rrset->rr_count -1) * sizeof(rr_type)); in rrset_del_rr()
357 rrset->rr_count--; in rrset_del_rr()
358 rrset->needs_signing = 1; in rrset_del_rr()
366 rrset_diff(rrset_type* rrset, unsigned is_ixfr, unsigned more_coming) in rrset_diff() argument
371 if (!rrset) { in rrset_diff()
374 zone = (zone_type*) rrset->zone; in rrset_diff()
377 for (i=0; i < rrset->rr_count; i++) { in rrset_diff()
378 if (rrset->rrs[i].is_added) { in rrset_diff()
379 if (!rrset->rrs[i].exists) { in rrset_diff()
383 ixfr_add_rr(zone->ixfr, rrset->rrs[i].rr); in rrset_diff()
388 rrset->rrs[i].exists = 1; in rrset_diff()
389 if ((rrset->rrtype == LDNS_RR_TYPE_DNSKEY) && more_coming) { in rrset_diff()
392 rrset->rrs[i].is_added = 0; in rrset_diff()
393 } else if (!is_ixfr || rrset->rrs[i].is_removed) { in rrset_diff()
394 if (rrset->rrs[i].exists && zone->db->is_initialized) { in rrset_diff()
397 ixfr_del_rr(zone->ixfr, rrset->rrs[i].rr); in rrset_diff()
400 rrset->rrs[i].exists = 0; in rrset_diff()
401 rrset_del_rr(rrset, i); in rrset_diff()
407 rrset_drop_rrsigs(zone, rrset); in rrset_diff()
416 rrset_drop_rrsigs(zone_type* zone, rrset_type* rrset) in rrset_drop_rrsigs() argument
419 while((rrsig = collection_iterator(rrset->rrsigs))) { in rrset_drop_rrsigs()
426 collection_del_cursor(rrset->rrsigs); in rrset_drop_rrsigs()
435 rrset_add_rrsig(rrset_type* rrset, ldns_rr* rr, in rrset_add_rrsig() argument
439 ods_log_assert(rrset); in rrset_add_rrsig()
442 rrsig.owner = rrset->domain; in rrset_add_rrsig()
446 collection_add(rrset->rrsigs, &rrsig); in rrset_add_rrsig()
454 rrset2rrlist(rrset_type* rrset) in rrset2rrlist() argument
460 for (i=0; i < rrset->rr_count; i++) { in rrset2rrlist()
461 if (!rrset->rrs[i].exists) { in rrset2rrlist()
462 log_rr(rrset->rrs[i].rr, "RR does not exist", LOG_WARNING); in rrset2rrlist()
465 ret = (int) ldns_rr_list_push_rr(rr_list, rrset->rrs[i].rr); in rrset2rrlist()
470 if (rrset->rrtype == LDNS_RR_TYPE_CNAME || in rrset2rrlist()
471 rrset->rrtype == LDNS_RR_TYPE_DNAME) { in rrset2rrlist()
570 rrset_sign(hsm_ctx_t* ctx, rrset_type* rrset, time_t signtime) in rrset_sign() argument
590 ods_log_assert(rrset); in rrset_sign()
591 zone = (zone_type*) rrset->zone; in rrset_sign()
595 if (rrset->rrtype == LDNS_RR_TYPE_NSEC || in rrset_sign()
596 rrset->rrtype == LDNS_RR_TYPE_NSEC3) { in rrset_sign()
600 domain = (domain_type*) rrset->domain; in rrset_sign()
606 for(nrrsigs=0; (signature = collection_iterator(rrset->rrsigs)); nrrsigs++) in rrset_sign()
609 for(i=0; (signature = collection_iterator(rrset->rrsigs)); i++) { in rrset_sign()
617 rrset->needs_signing = 0; in rrset_sign()
619 ods_log_assert(rrset->rrs); in rrset_sign()
620 ods_log_assert(rrset->rrs[0].rr); in rrset_sign()
624 log_rrset(ldns_rr_owner(rrset->rrs[0].rr), rrset->rrtype, in rrset_sign()
630 if (delegpt != LDNS_RR_TYPE_SOA && rrset->rrtype != LDNS_RR_TYPE_DS) { in rrset_sign()
631 log_rrset(ldns_rr_owner(rrset->rrs[0].rr), rrset->rrtype, in rrset_sign()
638 log_rrset(ldns_rr_owner(rrset->rrs[0].rr), rrset->rrtype, in rrset_sign()
641 (delegpt == LDNS_RR_TYPE_SOA || rrset->rrtype == LDNS_RR_TYPE_DS)); in rrset_sign()
643 rr_list = rrset2rrlist(rrset); in rrset_sign()
670 rrset_sigvalid_period(zone->signconf, rrset->rrtype, signtime, in rrset_sign()
686 …key && matchedsignatures[i].key->ksk && !matchedsignatures[i].key->zsk && rrset->rrtype != LDNS_RR… in rrset_sign()
690 …ey && !matchedsignatures[i].key->ksk && !matchedsignatures[i].key->zsk && rrset->rrtype != LDNS_RR… in rrset_sign()
693 …ey && !matchedsignatures[i].key->ksk && !matchedsignatures[i].key->zsk && rrset->rrtype != LDNS_RR… in rrset_sign()
696 …ey && !matchedsignatures[i].key->ksk && !matchedsignatures[i].key->zsk && rrset->rrtype == LDNS_RR… in rrset_sign()
699 …key && !matchedsignatures[i].key->ksk && matchedsignatures[i].key->zsk && rrset->rrtype == LDNS_RR… in rrset_sign()
722 …} else if (dstatus != LDNS_RR_TYPE_SOA || (delegpt != LDNS_RR_TYPE_SOA && rrset->rrtype != LDNS_RR… in rrset_sign()
727 …ods_log_assert(dstatus == LDNS_RR_TYPE_SOA || (delegpt == LDNS_RR_TYPE_SOA || rrset->rrtype == LDN… in rrset_sign()
772 while((signature = collection_iterator(rrset->rrsigs))) { in rrset_sign()
774 collection_del_cursor(rrset->rrsigs); in rrset_sign()
785 rrset_sigvalid_period(zone->signconf, rrset->rrtype, signtime, &inception, &expiration); in rrset_sign()
791 rrset->rrtype, zone->signconf->keys->keys[i].locator); in rrset_sign()
796 rrset_str, rrset->rrtype); in rrset_sign()
804 rrset_add_rrsig(rrset, rrsig, locator, matchedsignatures[i].key->flags); in rrset_sign()
815 if(rrset->rrtype == LDNS_RR_TYPE_DNSKEY && zone->signconf->dnskey_signature) { in rrset_sign()
825 rrset_add_rrsig(rrset, rrsig, NULL, 0); in rrset_sign()
841 if (rrset->rrtype == LDNS_RR_TYPE_SOA) { in rrset_sign()
871 rrset_print(FILE* fd, rrset_type* rrset, int skip_rrsigs, in rrset_print() argument
878 if (!rrset || !fd) { in rrset_print()
885 for (i=0; i < rrset->rr_count; i++) { in rrset_print()
886 if (rrset->rrs[i].exists) { in rrset_print()
887 result = util_rr_print(fd, rrset->rrs[i].rr); in rrset_print()
888 if (rrset->rrtype == LDNS_RR_TYPE_CNAME || in rrset_print()
889 rrset->rrtype == LDNS_RR_TYPE_DNAME) { in rrset_print()
894 zone_type* zone = (zone_type*) rrset->zone; in rrset_print()
895 log_rrset(ldns_rr_owner(rrset->rrs[i].rr), rrset->rrtype, in rrset_print()
904 while((rrsig = collection_iterator(rrset->rrsigs))) { in rrset_print()
908 zone_type* zone = rrset->zone; in rrset_print()
909 log_rrset(ldns_rr_owner(rrset->rrs[i].rr), rrset->rrtype, in rrset_print()
928 rrset_cleanup(rrset_type* rrset) in rrset_cleanup() argument
931 if (!rrset) { in rrset_cleanup()
934 rrset_cleanup(rrset->next); in rrset_cleanup()
935 rrset->next = NULL; in rrset_cleanup()
936 rrset->domain = NULL; in rrset_cleanup()
937 for (i=0; i < rrset->rr_count; i++) { in rrset_cleanup()
938 ldns_rr_free(rrset->rrs[i].rr); in rrset_cleanup()
939 rrset->rrs[i].owner = NULL; in rrset_cleanup()
941 collection_destroy(&rrset->rrsigs); in rrset_cleanup()
942 free(rrset->rrs); in rrset_cleanup()
943 free(rrset); in rrset_cleanup()
951 rrset_backup2(FILE* fd, rrset_type* rrset) in rrset_backup2() argument
955 if (!rrset || !fd) { in rrset_backup2()
958 while((rrsig = collection_iterator(rrset->rrsigs))) { in rrset_backup2()