Lines Matching refs:rrset

293     ltree_rrset_addr_t* rrset = ltree_node_get_rrset_addr(node);  local
294 if(!rrset) {
296 rrset = ltree_node_add_rrset_addr(node);
297 rrset->gen.count = 1;
298 rrset->gen.ttl = htonl(ttl);
299 rrset->limit_v4 = limit_v4;
300 rrset->v4a[0] = addr;
303 if(!(rrset->gen.count | rrset->count_v6)) // DYNA here already
305 if(ntohl(rrset->gen.ttl) != ttl)
306 … name should agree (using %u)", logf_dname(dname), logf_dname(zone->dname), ntohl(rrset->gen.ttl));
307 if(rrset->gen.count == UINT16_MAX)
309 if(rrset->gen.count > 0) {
310 if(rrset->limit_v4 != limit_v4)
311 …e same name should agree (using %u)", logf_dname(dname), logf_dname(zone->dname), rrset->limit_v4);
314 rrset->limit_v4 = limit_v4;
317 if(!rrset->count_v6 && rrset->gen.count <= LTREE_V4A_SIZE) {
318 if(rrset->gen.count == LTREE_V4A_SIZE) { // upgrade to addrs, copy old addrs
320 memcpy(new_v4, rrset->v4a, sizeof(uint32_t) * LTREE_V4A_SIZE);
322 rrset->addrs.v4 = new_v4;
323 rrset->addrs.v6 = NULL;
324 rrset->gen.count = LTREE_V4A_SIZE + 1;
327 rrset->v4a[rrset->gen.count++] = addr;
331 rrset->addrs.v4 = xrealloc(rrset->addrs.v4, sizeof(uint32_t) * (1U + rrset->gen.count));
332 rrset->addrs.v4[rrset->gen.count++] = addr;
349 ltree_rrset_addr_t* rrset = ltree_node_get_rrset_addr(node); in ltree_add_rec_aaaa() local
350 if(!rrset) { in ltree_add_rec_aaaa()
352 rrset = ltree_node_add_rrset_addr(node); in ltree_add_rec_aaaa()
353 rrset->addrs.v6 = xmalloc(16); in ltree_add_rec_aaaa()
354 memcpy(rrset->addrs.v6, addr, 16); in ltree_add_rec_aaaa()
355 rrset->count_v6 = 1; in ltree_add_rec_aaaa()
356 rrset->gen.ttl = htonl(ttl); in ltree_add_rec_aaaa()
357 rrset->limit_v6 = limit_v6; in ltree_add_rec_aaaa()
360 if(!(rrset->gen.count | rrset->count_v6)) // DYNA here already in ltree_add_rec_aaaa()
362 if(ntohl(rrset->gen.ttl) != ttl) in ltree_add_rec_aaaa()
363 … name should agree (using %u)", logf_dname(dname), logf_dname(zone->dname), ntohl(rrset->gen.ttl)); in ltree_add_rec_aaaa()
364 if(rrset->count_v6 == UINT16_MAX) in ltree_add_rec_aaaa()
366 if(rrset->count_v6 > 0) { in ltree_add_rec_aaaa()
367 if(rrset->limit_v6 != limit_v6) in ltree_add_rec_aaaa()
368 …e same name should agree (using %u)", logf_dname(dname), logf_dname(zone->dname), rrset->limit_v6); in ltree_add_rec_aaaa()
371 rrset->limit_v6 = limit_v6; in ltree_add_rec_aaaa()
374 if(!rrset->count_v6 && rrset->gen.count <= LTREE_V4A_SIZE) { in ltree_add_rec_aaaa()
376 uint32_t* new_v4 = xmalloc(sizeof(uint32_t) * rrset->gen.count); in ltree_add_rec_aaaa()
377 memcpy(new_v4, rrset->v4a, sizeof(uint32_t) * rrset->gen.count); in ltree_add_rec_aaaa()
378 rrset->addrs.v4 = new_v4; in ltree_add_rec_aaaa()
379 rrset->addrs.v6 = NULL; in ltree_add_rec_aaaa()
381 rrset->addrs.v6 = xrealloc(rrset->addrs.v6, 16 * (1U + rrset->count_v6)); in ltree_add_rec_aaaa()
382 memcpy(rrset->addrs.v6 + (rrset->count_v6++ * 16), addr, 16); in ltree_add_rec_aaaa()
398 ltree_rrset_addr_t* rrset; in ltree_add_rec_dynaddr() local
399 if((rrset = ltree_node_get_rrset_addr(node))) { in ltree_add_rec_dynaddr()
400 if(rrset->gen.count | rrset->count_v6) in ltree_add_rec_dynaddr()
415 rrset = ltree_node_add_rrset_addr(node); in ltree_add_rec_dynaddr()
416 rrset->gen.ttl = htonl(ttl); in ltree_add_rec_dynaddr()
417 rrset->dyn.ttl_min = ttl_min; in ltree_add_rec_dynaddr()
418 rrset->limit_v4 = limit_v4; in ltree_add_rec_dynaddr()
419 rrset->limit_v6 = limit_v6; in ltree_add_rec_dynaddr()
432 rrset->dyn.func = p->resolve; in ltree_add_rec_dynaddr()
433 rrset->dyn.resource = 0; in ltree_add_rec_dynaddr()
439 rrset->dyn.resource = (unsigned)res; in ltree_add_rec_dynaddr()
451 ltree_rrset_cname_t* rrset = ltree_node_add_rrset_cname(node); in ltree_add_rec_cname() local
452 rrset->dname = lta_dnamedup(zone->arena, rhs); in ltree_add_rec_cname()
453 rrset->gen.ttl = htonl(ttl); in ltree_add_rec_cname()
454 rrset->gen.count = 1; in ltree_add_rec_cname()
472 ltree_rrset_dync_t* rrset = ltree_node_add_rrset_dync(node); in ltree_add_rec_dync() local
473 rrset->origin = lta_dnamedup(zone->arena, origin); in ltree_add_rec_dync()
474 rrset->gen.ttl = htonl(ttl); in ltree_add_rec_dync()
475 rrset->ttl_min = ttl_min; in ltree_add_rec_dync()
476 rrset->limit_v4 = limit_v4; in ltree_add_rec_dync()
477 rrset->limit_v6 = limit_v6; in ltree_add_rec_dync()
491 rrset->func = p->resolve; in ltree_add_rec_dync()
495 rrset->resource = 0; in ltree_add_rec_dync()
497 const int res = p->map_res(resource_name, rrset->origin); in ltree_add_rec_dync()
499 …igin '%s'", logf_dname(dname), logf_dname(zone->dname), plugin_name, resource_name, rrset->origin); in ltree_add_rec_dync()
500 rrset->resource = (unsigned)res; in ltree_add_rec_dync()
514 ltree_rrset_ ## _typ ## _t* rrset = ltree_node_get_rrset_ ## _nam (node);\
516 if(!rrset) {\
518 rrset = ltree_node_add_rrset_ ## _nam (node);\
519 rrset->gen.count = 1;\
520 rrset->gen.ttl = htonl(ttl);\
521 new_rdata = rrset->rdata = xmalloc(sizeof(ltree_rdata_ ## _typ ## _t) * _szassume);\
524 if(ntohl(rrset->gen.ttl) != ttl)\
525 …ould match (using %u)", logf_dname(dname), logf_dname(zone->dname), _pnam, ntohl(rrset->gen.ttl));\
526 if(rrset->gen.count == UINT16_MAX)\
528 if(_szassume == 1 || rrset->gen.count >= _szassume) \
529rrset->rdata = xrealloc(rrset->rdata, (1U + rrset->gen.count) * sizeof(ltree_rdata_ ## _typ ## _t)…
530 new_rdata = &rrset->rdata[rrset->gen.count++];\
732 ltree_rrset_rfc3597_t* rrset = ltree_node_get_rrset_rfc3597(node, rrtype); in ltree_add_rec_rfc3597() local
736 if(!rrset) { in ltree_add_rec_rfc3597()
737 rrset = ltree_node_add_rrset_rfc3597(node, rrtype); in ltree_add_rec_rfc3597()
738 rrset->gen.count = 1; in ltree_add_rec_rfc3597()
739 rrset->gen.ttl = htonl(ttl); in ltree_add_rec_rfc3597()
740 new_rdata = rrset->rdata = xmalloc(sizeof(ltree_rdata_rfc3597_t)); in ltree_add_rec_rfc3597()
743 if(ntohl(rrset->gen.ttl) != ttl) in ltree_add_rec_rfc3597()
744 …ould match (using %u)", logf_dname(dname), logf_dname(zone->dname), rrtype, ntohl(rrset->gen.ttl)); in ltree_add_rec_rfc3597()
745 if(rrset->gen.count == UINT16_MAX) in ltree_add_rec_rfc3597()
747rrset->rdata = xrealloc(rrset->rdata, (1U + rrset->gen.count) * sizeof(ltree_rdata_rfc3597_t)); in ltree_add_rec_rfc3597()
748 new_rdata = &rrset->rdata[rrset->gen.count++]; in ltree_add_rec_rfc3597()
951 ltree_rrset_t* rrset = node->rrsets; in ltree_postproc_phase1() local
952 while(rrset) { in ltree_postproc_phase1()
953 switch(rrset->gen.type) { in ltree_postproc_phase1()
954 case DNS_TYPE_A: node_addr = &rrset->addr; break; in ltree_postproc_phase1()
956 case DNS_TYPE_CNAME: node_cname = &rrset->cname; break; in ltree_postproc_phase1()
957 case DNS_TYPE_DYNC: node_dync = &rrset->dync; break; in ltree_postproc_phase1()
958 case DNS_TYPE_NS: node_ns = &rrset->ns; break; in ltree_postproc_phase1()
959 case DNS_TYPE_PTR: node_ptr = &rrset->ptr; break; in ltree_postproc_phase1()
960 case DNS_TYPE_MX: node_mx = &rrset->mx; break; in ltree_postproc_phase1()
961 case DNS_TYPE_SRV: node_srv = &rrset->srv; break; in ltree_postproc_phase1()
962 case DNS_TYPE_NAPTR: node_naptr = &rrset->naptr; break; in ltree_postproc_phase1()
963 case DNS_TYPE_TXT: node_txt = &rrset->txt; break; in ltree_postproc_phase1()
966 rrset = rrset->gen.next; in ltree_postproc_phase1()
1108 ltree_rrset_t* rrset = zroot->rrsets; in ltree_postproc_zroot_phase1() local
1109 while(rrset) { in ltree_postproc_zroot_phase1()
1110 switch(rrset->gen.type) { in ltree_postproc_zroot_phase1()
1111 case DNS_TYPE_SOA: zroot_soa = &rrset->soa; break; in ltree_postproc_zroot_phase1()
1112 case DNS_TYPE_NS: zroot_ns = &rrset->ns; break; in ltree_postproc_zroot_phase1()
1115 rrset = rrset->gen.next; in ltree_postproc_zroot_phase1()
1222 ltree_rrset_t* rrset = node->rrsets; in ltree_destroy() local
1223 while(rrset) { in ltree_destroy()
1224 ltree_rrset_t* next = rrset->gen.next; in ltree_destroy()
1225 switch(rrset->gen.type) { in ltree_destroy()
1227 if(rrset->addr.count_v6) { in ltree_destroy()
1228 dmn_assert(rrset->addr.addrs.v6); in ltree_destroy()
1229 free(rrset->addr.addrs.v6); in ltree_destroy()
1230 if(rrset->addr.addrs.v4) in ltree_destroy()
1231 free(rrset->addr.addrs.v4); in ltree_destroy()
1233 else if(rrset->gen.count && rrset->gen.count > LTREE_V4A_SIZE) { in ltree_destroy()
1234 dmn_assert(!rrset->addr.addrs.v6); in ltree_destroy()
1235 dmn_assert(rrset->addr.addrs.v4); in ltree_destroy()
1236 free(rrset->addr.addrs.v4); in ltree_destroy()
1241 for(unsigned i = 0; i < rrset->gen.count; i++) { in ltree_destroy()
1242 free(rrset->naptr.rdata[i].texts[NAPTR_TEXTS_REGEXP]); in ltree_destroy()
1243 free(rrset->naptr.rdata[i].texts[NAPTR_TEXTS_SERVICES]); in ltree_destroy()
1244 free(rrset->naptr.rdata[i].texts[NAPTR_TEXTS_FLAGS]); in ltree_destroy()
1246 free(rrset->naptr.rdata); in ltree_destroy()
1249 for(unsigned i = 0; i < rrset->gen.count; i++) { in ltree_destroy()
1250 uint8_t** tptr = rrset->txt.rdata[i]; in ltree_destroy()
1254 free(rrset->txt.rdata[i]); in ltree_destroy()
1256 free(rrset->txt.rdata); in ltree_destroy()
1259 free(rrset->ns.rdata); in ltree_destroy()
1262 free(rrset->mx.rdata); in ltree_destroy()
1265 free(rrset->ptr.rdata); in ltree_destroy()
1268 free(rrset->srv.rdata); in ltree_destroy()
1275 for(unsigned i = 0; i < rrset->gen.count; i++) in ltree_destroy()
1276 free(rrset->rfc3597.rdata[i].rd); in ltree_destroy()
1277 free(rrset->rfc3597.rdata); in ltree_destroy()
1280 free(rrset); in ltree_destroy()
1281 rrset = next; in ltree_destroy()