Lines Matching defs:addrinfo

152 	dns_adbaddrinfo_t *		addrinfo;
303 dns_adbaddrinfo_t *addrinfo;
335 dns_adbaddrinfo_t * addrinfo;
443 * Private addrinfo flags. These must not conflict with DNS_FETCHOPT_NOEDNS0,
444 * which we also use as an addrinfo flag.
477 static void add_bad(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
490 valcreate(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, dns_name_t *name,
504 valarg->addrinfo = addrinfo;
786 dns_adbaddrinfo_t *addrinfo;
838 rtt = query->addrinfo->srtt + 200000;
846 dns_adb_adjustsrtt(fctx->adb, query->addrinfo, rtt, factor);
850 if (!TRIED(query->addrinfo)) {
851 dns_adb_changeflags(fctx->adb, query->addrinfo,
860 for (addrinfo = ISC_LIST_HEAD(fctx->forwaddrs);
861 addrinfo != NULL;
862 addrinfo = ISC_LIST_NEXT(addrinfo, publink))
863 if (UNMARKED(addrinfo))
864 dns_adb_adjustsrtt(fctx->adb, addrinfo,
871 for (addrinfo = ISC_LIST_HEAD(find->list);
872 addrinfo != NULL;
873 addrinfo = ISC_LIST_NEXT(addrinfo, publink))
874 if (UNMARKED(addrinfo))
875 dns_adb_adjustsrtt(fctx->adb, addrinfo,
879 for (addrinfo = ISC_LIST_HEAD(fctx->altaddrs);
880 addrinfo != NULL;
881 addrinfo = ISC_LIST_NEXT(addrinfo, publink))
882 if (UNMARKED(addrinfo))
883 dns_adb_adjustsrtt(fctx->adb, addrinfo,
888 for (addrinfo = ISC_LIST_HEAD(find->list);
889 addrinfo != NULL;
890 addrinfo = ISC_LIST_NEXT(addrinfo, publink))
891 if (UNMARKED(addrinfo))
892 dns_adb_adjustsrtt(fctx->adb, addrinfo,
1205 add_bad(fctx, query->addrinfo, sevent->result,
1384 fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
1400 srtt = addrinfo->srtt;
1406 if (ISFORWARDER(addrinfo) && srtt < 1000000)
1429 * Note that the caller MUST guarantee that 'addrinfo' will remain
1432 query->addrinfo = addrinfo;
1447 isc_netaddr_fromsockaddr(&dstip, &addrinfo->sockaddr);
1460 pf = isc_sockaddr_pf(&addrinfo->sockaddr);
1525 switch (isc_sockaddr_pf(&addrinfo->sockaddr)) {
1565 &addrinfo->sockaddr, task,
1580 if (isc_sockaddr_pf(&addrinfo->sockaddr) == PF_INET)
1750 &query->addrinfo->sockaddr,
1779 ISFORWARDER(query->addrinfo))
1823 isc_netaddr_fromsockaddr(&ipaddr, &query->addrinfo->sockaddr);
1830 if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 &&
1836 dns_adb_changeflags(fctx->adb, query->addrinfo,
1841 /* Sync NOEDNS0 flag in addrinfo->flags and options now. */
1842 if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) != 0)
1860 if ((triededns512(fctx, &query->addrinfo->sockaddr) ||
1865 } else if ((triededns(fctx, &query->addrinfo->sockaddr) ||
1880 if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0) {
1886 flags = query->addrinfo->flags;
1930 add_triededns(fctx, &query->addrinfo->sockaddr);
1933 add_triededns512(fctx, &query->addrinfo->sockaddr);
2000 address = &query->addrinfo->sockaddr;
2119 if (isc_sockaddr_pf(&query->addrinfo->sockaddr) ==
2272 dns_adbaddrinfo_t *addrinfo;
2286 for (addrinfo = ISC_LIST_HEAD(curr->list);
2287 addrinfo != NULL;
2288 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
2289 if (bad_server(fctx, &addrinfo->sockaddr))
2290 addrinfo->flags |= FCTX_ADDRINFO_MARK;
2299 for (addrinfo = ISC_LIST_HEAD(fctx->forwaddrs);
2300 addrinfo != NULL;
2301 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
2302 if (bad_server(fctx, &addrinfo->sockaddr))
2303 addrinfo->flags |= FCTX_ADDRINFO_MARK;
2314 for (addrinfo = ISC_LIST_HEAD(curr->list);
2315 addrinfo != NULL;
2316 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
2317 if (bad_server(fctx, &addrinfo->sockaddr))
2318 addrinfo->flags |= FCTX_ADDRINFO_MARK;
2324 for (addrinfo = ISC_LIST_HEAD(fctx->altaddrs);
2325 addrinfo != NULL;
2326 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
2327 if (bad_server(fctx, &addrinfo->sockaddr))
2328 addrinfo->flags |= FCTX_ADDRINFO_MARK;
2337 add_bad(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, isc_result_t reason,
2348 isc_sockaddr_t *address = &addrinfo->sockaddr;
2385 ISFORWARDER(addrinfo))
2413 * Sort addrinfo list by RTT.
2443 dns_adbaddrinfo_t *addrinfo, *bestaddrinfo;
2445 /* Sort each find's addrinfo list by SRTT. */
2459 addrinfo = ISC_LIST_HEAD(curr->list);
2460 INSIST(addrinfo != NULL);
2461 if (addrinfo->srtt < bestaddrinfo->srtt) {
2463 bestaddrinfo = addrinfo;
2905 dns_adbaddrinfo_t *addrinfo;
2915 for (addrinfo = ISC_LIST_HEAD(fctx->forwaddrs);
2916 addrinfo != NULL;
2917 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
2918 if (!UNMARKED(addrinfo))
2920 possibly_mark(fctx, addrinfo);
2921 if (UNMARKED(addrinfo)) {
2922 addrinfo->flags |= FCTX_ADDRINFO_MARK;
2924 return (addrinfo);
2944 * Find the first unmarked addrinfo.
2946 addrinfo = NULL;
2950 for (addrinfo = ISC_LIST_HEAD(find->list);
2951 addrinfo != NULL;
2952 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
2953 if (!UNMARKED(addrinfo))
2955 possibly_mark(fctx, addrinfo);
2956 if (UNMARKED(addrinfo)) {
2957 addrinfo->flags |= FCTX_ADDRINFO_MARK;
2961 if (addrinfo != NULL)
2970 if (addrinfo != NULL)
2971 return (addrinfo);
2989 * Find the first unmarked addrinfo.
2991 addrinfo = NULL;
2995 for (addrinfo = ISC_LIST_HEAD(find->list);
2996 addrinfo != NULL;
2997 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
2998 if (!UNMARKED(addrinfo))
3000 possibly_mark(fctx, addrinfo);
3001 if (UNMARKED(addrinfo)) {
3002 addrinfo->flags |= FCTX_ADDRINFO_MARK;
3006 if (addrinfo != NULL)
3014 faddrinfo = addrinfo;
3020 for (addrinfo = ISC_LIST_HEAD(fctx->altaddrs);
3021 addrinfo != NULL;
3022 addrinfo = ISC_LIST_NEXT(addrinfo, publink)) {
3023 if (!UNMARKED(addrinfo))
3025 possibly_mark(fctx, addrinfo);
3026 if (UNMARKED(addrinfo) &&
3028 addrinfo->srtt < faddrinfo->srtt)) {
3031 addrinfo->flags |= FCTX_ADDRINFO_MARK;
3036 if (addrinfo == NULL) {
3037 addrinfo = faddrinfo;
3041 return (addrinfo);
3047 dns_adbaddrinfo_t *addrinfo;
3053 addrinfo = fctx_nextaddress(fctx);
3054 if (addrinfo == NULL) {
3079 addrinfo = fctx_nextaddress(fctx);
3084 if (addrinfo == NULL) {
3090 result = fctx_query(fctx, addrinfo, fctx->options);
3606 fctx->addrinfo = NULL;
3827 log_lame(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo) {
3834 isc_sockaddr_format(&addrinfo->sockaddr, addrbuf, sizeof(addrbuf));
3853 isc_sockaddr_format(&fctx->addrinfo->sockaddr, nsbuf, sizeof(nsbuf));
4017 dns_adbaddrinfo_t *addrinfo;
4044 addrinfo = valarg->addrinfo;
4176 add_bad(fctx, addrinfo, result, badns_validation);
4396 cache_name(fetchctx_t *fctx, dns_name_t *name, dns_adbaddrinfo_t *addrinfo,
4662 result = valcreate(fctx, addrinfo,
4747 result = valcreate(fctx, addrinfo, name, fctx->type,
4776 cache_message(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, isc_stdtime_t now)
4797 result = cache_name(fctx, name, addrinfo, now);
4867 ncache_message(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
4950 result = valcreate(fctx, addrinfo, name, fctx->type,
5548 else if (ISFORWARDER(fctx->addrinfo))
5610 else if (ISFORWARDER(fctx->addrinfo))
5654 else if (ISFORWARDER(fctx->addrinfo))
6501 isc_sockaddr_format(&query->addrinfo->sockaddr, addrbuf,
6596 dns_adbaddrinfo_t *addrinfo;
6611 if (isc_sockaddr_pf(&query->addrinfo->sockaddr) == PF_INET)
6633 fctx->addrinfo = query->addrinfo;
6661 query->addrinfo,
6735 query->addrinfo,
6765 query->addrinfo,
6828 bad_edns(fctx, &query->addrinfo->sockaddr)) {
6830 isc_sockaddr_format(&query->addrinfo->sockaddr, addrbuf,
6832 dns_adb_changeflags(fctx->adb, query->addrinfo,
6911 add_bad_edns(fctx, &query->addrinfo->sockaddr);
6914 if (ISFORWARDER(query->addrinfo)) {
6953 dns_adb_changeflags(fctx->adb, query->addrinfo,
6986 if (fctx->res->lame_ttl != 0 && !ISFORWARDER(query->addrinfo) &&
6989 log_lame(fctx, query->addrinfo);
6990 result = dns_adb_marklame(fctx->adb, query->addrinfo,
7006 if (!ISFORWARDER(query->addrinfo) &&
7021 isc_sockaddr_format(&query->addrinfo->sockaddr, addrbuf,
7051 ISFORWARDER(query->addrinfo))
7177 result = cache_message(fctx, query->addrinfo, now);
7196 result = ncache_message(fctx, query->addrinfo, covers, now);
7201 * Remember the query's addrinfo, in case we need to mark the
7204 addrinfo = query->addrinfo;
7221 add_bad(fctx, addrinfo, broken_server, broken_type);
7284 result = fctx_query(fctx, addrinfo, options);
7303 add_bad(fctx, addrinfo, result, broken_type);