Lines Matching refs:adbname

487  * Requires the adbname bucket be locked and that no entry buckets be locked.
492 import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset,
510 INSIST(DNS_ADBNAME_VALID(adbname));
511 adb = adbname->adb;
533 hookhead = &adbname->v4;
538 hookhead = &adbname->v6;
544 adbname->partial_result |= findoptions;
556 adbname->partial_result |= findoptions;
604 adbname->expire_v4, now + rdataset->ttl);
605 adbname->expire_v4 = ISC_MIN(adbname->expire_v4,
609 adbname->expire_v6, now + rdataset->ttl);
610 adbname->expire_v6 = ISC_MIN(adbname->expire_v6,
1136 find->adbname = NULL;
1474 h->adbname = NULL;
1540 INSIST(find->adbname == NULL);
1600 dns_adbname_t *adbname;
1614 adbname = ISC_LIST_HEAD(adb->names[bucket]);
1615 while (adbname != NULL) {
1616 if (!NAME_DEAD(adbname)) {
1617 if (dns_name_equal(name, &adbname->name)
1618 && GLUEHINT_OK(adbname, options)
1619 && STARTATZONE_MATCHES(adbname, options))
1620 return (adbname);
1622 adbname = ISC_LIST_NEXT(adbname, plink);
2117 MPINIT(dns_adbname_t, adb->nmp, "adbname");
2286 dns_adbname_t *adbname;
2357 adbname = find_name_and_lock(adb, name, find->options, &bucket);
2368 * Nothing found. Allocate a new adbname structure for this name.
2370 if (adbname == NULL) {
2377 adbname = new_adbname(adb, name);
2378 if (adbname == NULL) {
2383 link_name(adb, bucket, adbname);
2385 adbname->flags |= NAME_HINT_OK;
2387 adbname->flags |= NAME_GLUE_OK;
2389 adbname->flags |= NAME_STARTATZONE;
2392 ISC_LIST_UNLINK(adb->names[bucket], adbname, plink);
2393 ISC_LIST_PREPEND(adb->names[bucket], adbname, plink);
2395 adbname->last_used = now;
2400 RUNTIME_CHECK(check_expire_namehooks(adbname, now) == ISC_FALSE);
2405 if (!EXPIRE_OK(adbname->expire_target, now)) {
2411 adbname);
2421 if (!NAME_HAS_V4(adbname) && EXPIRE_OK(adbname->expire_v4, now)
2423 result = dbfind_name(adbname, now, dns_rdatatype_a);
2427 adbname);
2437 adbname);
2456 if (!NAME_FETCH_V4(adbname))
2461 if (!NAME_HAS_V6(adbname) && EXPIRE_OK(adbname->expire_v6, now)
2463 result = dbfind_name(adbname, now, dns_rdatatype_aaaa);
2467 adbname);
2477 adbname);
2489 if (!NAME_FETCH_V6(adbname))
2494 if ((WANT_INET(wanted_addresses) && NAME_HAS_V4(adbname)) ||
2495 (WANT_INET6(wanted_addresses) && NAME_HAS_V6(adbname)))
2515 fetch_name(adbname, start_at_zone,
2519 adbname);
2526 fetch_name(adbname, start_at_zone,
2531 adbname);
2539 copy_namehook_lists(adb, find, qname, qtype, adbname, now);
2542 if (NAME_FETCH_V4(adbname))
2544 if (NAME_FETCH_V6(adbname))
2561 find->adbname = adbname;
2563 ISC_LIST_APPEND(adbname->finds, find, plink);
2567 DP(DEF_LEVEL, "createfind: attaching find %p to adbname %p",
2568 find, adbname);
2582 find->partial_result |= (adbname->partial_result & wanted_addresses);
2585 result = dns_name_copy(&adbname->target, target, NULL);
2596 find->result_v4 = find_err_map[adbname->fetch_err];
2597 find->result_v6 = find_err_map[adbname->fetch6_err];
2701 * We need to get the adbname's lock to unlink the find.
2707 ISC_LIST_UNLINK(find->adbname->finds, find, plink);
2708 find->adbname = NULL;
2902 find->name_bucket, find->adbname, find->event.ev_sender);
2987 dbfind_name(dns_adbname_t *adbname, isc_stdtime_t now, dns_rdatatype_t rdtype)
2995 INSIST(DNS_ADBNAME_VALID(adbname));
2996 adb = adbname->adb;
3005 adbname->fetch_err = FIND_ERR_UNEXPECTED;
3007 adbname->fetch6_err = FIND_ERR_UNEXPECTED;
3009 result = dns_view_find(adb->view, &adbname->name, rdtype, now,
3010 NAME_GLUEOK(adbname) ? DNS_DBFIND_GLUEOK : 0,
3011 ISC_TF(NAME_HINTOK(adbname)),
3025 adbname->fetch_err = FIND_ERR_SUCCESS;
3027 adbname->fetch6_err = FIND_ERR_SUCCESS;
3028 result = import_rdataset(adbname, &rdataset, now);
3041 adbname->expire_v4 = now + 30;
3044 adbname);
3046 adbname->fetch_err = FIND_ERR_NXDOMAIN;
3048 adbname->fetch_err = FIND_ERR_NXRRSET;
3052 adbname);
3053 adbname->expire_v6 = now + 30;
3055 adbname->fetch6_err = FIND_ERR_NXDOMAIN;
3057 adbname->fetch6_err = FIND_ERR_NXRRSET;
3068 adbname->expire_v4 = rdataset.ttl + now;
3070 adbname->fetch_err = FIND_ERR_NXDOMAIN;
3072 adbname->fetch_err = FIND_ERR_NXRRSET;
3075 adbname, rdataset.ttl);
3079 adbname, rdataset.ttl);
3080 adbname->expire_v6 = rdataset.ttl + now;
3082 adbname->fetch6_err = FIND_ERR_NXDOMAIN;
3084 adbname->fetch6_err = FIND_ERR_NXRRSET;
3093 adbname->flags &= ~(DNS_ADBFIND_GLUEOK | DNS_ADBFIND_HINTOK);
3096 clean_target(adb, &adbname->target);
3097 adbname->expire_target = INT_MAX;
3098 result = set_target(adb, &adbname->name, fname, &rdataset,
3099 &adbname->target);
3104 adbname);
3105 adbname->expire_target = rdataset.ttl + now;
3108 adbname->fetch_err = FIND_ERR_SUCCESS;
3110 adbname->fetch6_err = FIND_ERR_SUCCESS;
3296 fetch_name(dns_adbname_t *adbname,
3309 INSIST(DNS_ADBNAME_VALID(adbname));
3310 adb = adbname->adb;
3313 INSIST((type == dns_rdatatype_a && !NAME_FETCH_V4(adbname)) ||
3314 (type == dns_rdatatype_aaaa && !NAME_FETCH_V6(adbname)));
3316 adbname->fetch_err = FIND_ERR_NOTFOUND;
3326 adbname);
3329 result = dns_view_findzonecut2(adb->view, &adbname->name, name,
3344 result = dns_resolver_createfetch(adb->view->resolver, &adbname->name,
3347 adbname, &fetch->rdataset, NULL,
3353 adbname->fetch_a = fetch;
3356 adbname->fetch_aaaa = fetch;
3591 dns_adbname_t *adbname;
3600 adbname = ISC_LIST_HEAD(adb->names[bucket]);
3601 while (adbname != NULL) {
3602 nextname = ISC_LIST_NEXT(adbname, plink);
3603 if (!NAME_DEAD(adbname) &&
3604 dns_name_equal(name, &adbname->name)) {
3605 RUNTIME_CHECK(kill_name(&adbname,
3609 adbname = nextname;