Lines Matching refs:pai
320 (ai) = get_ai(pai, (afd), (addr)); \
338 error = get_canonname(pai, (ai), (str)); \
396 struct addrinfo *pai; in getaddrinfo() local
414 pai = &ai; in getaddrinfo()
415 pai->ai_flags = 0; in getaddrinfo()
416 pai->ai_family = PF_UNSPEC; in getaddrinfo()
417 pai->ai_socktype = ANY; in getaddrinfo()
418 pai->ai_protocol = ANY; in getaddrinfo()
419 pai->ai_addrlen = 0; in getaddrinfo()
420 pai->ai_canonname = NULL; in getaddrinfo()
421 pai->ai_addr = NULL; in getaddrinfo()
422 pai->ai_next = NULL; in getaddrinfo()
444 memcpy(pai, hints, sizeof(*pai)); in getaddrinfo()
450 if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) { in getaddrinfo()
452 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, in getaddrinfo()
455 if (!MATCH(pai->ai_socktype, ex->e_socktype, in getaddrinfo()
458 if (!MATCH(pai->ai_protocol, ex->e_protocol, in getaddrinfo()
476 switch (pai->ai_flags & (AI_ALL | AI_V4MAPPED)) { in getaddrinfo()
480 if (pai->ai_family != AF_INET6) in getaddrinfo()
481 pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED); in getaddrinfo()
485 pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED); in getaddrinfo()
494 if (MATCH_FAMILY(pai->ai_family, PF_INET, 1) in getaddrinfo()
496 || MATCH_FAMILY(pai->ai_family, PF_INET6, 1) in getaddrinfo()
499 ai0 = *pai; /* backup *pai */ in getaddrinfo()
501 if (pai->ai_family == PF_UNSPEC) { in getaddrinfo()
503 pai->ai_family = PF_INET6; in getaddrinfo()
505 pai->ai_family = PF_INET; in getaddrinfo()
508 error = get_portmatch(pai, servname); in getaddrinfo()
512 *pai = ai0; in getaddrinfo()
515 ai0 = *pai; in getaddrinfo()
524 *pai = ai0; in getaddrinfo()
526 if (!MATCH_FAMILY(pai->ai_family, afd->a_af, 1)) in getaddrinfo()
529 if (pai->ai_family == PF_UNSPEC) in getaddrinfo()
530 pai->ai_family = afd->a_af; in getaddrinfo()
533 error = explore_null(pai, servname, in getaddrinfo()
543 error = explore_numeric_scope(pai, hostname, servname, in getaddrinfo()
563 if (pai->ai_flags & AI_NUMERICHOST) in getaddrinfo()
566 if ((pai->ai_flags & AI_ADDRCONFIG) != 0 && !addrconfig(&ai0)) in getaddrinfo()
572 *pai = ai0; in getaddrinfo()
573 error = explore_fqdn(pai, hostname, servname, &afai_unspec); in getaddrinfo()
577 *pai = ai0; in getaddrinfo()
579 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex))) in getaddrinfo()
581 if (!MATCH(pai->ai_socktype, ex->e_socktype, in getaddrinfo()
584 if (!MATCH(pai->ai_protocol, ex->e_protocol, in getaddrinfo()
588 if (pai->ai_family == PF_UNSPEC) in getaddrinfo()
589 pai->ai_family = ex->e_af; in getaddrinfo()
590 if (pai->ai_socktype == ANY && ex->e_socktype != ANY) in getaddrinfo()
591 pai->ai_socktype = ex->e_socktype; in getaddrinfo()
592 if (pai->ai_protocol == ANY && ex->e_protocol != ANY) in getaddrinfo()
593 pai->ai_protocol = ex->e_protocol; in getaddrinfo()
598 if (get_portmatch(pai, servname) != 0) in getaddrinfo()
604 if ((afd = find_afd(pai->ai_family)) == NULL) in getaddrinfo()
612 error = explore_copy(pai, afai, &cur->ai_next); in getaddrinfo()
1151 explore_copy(const struct addrinfo *pai, const struct addrinfo *src0, in explore_copy() argument
1163 if (src->ai_family != pai->ai_family) in explore_copy()
1172 cur->ai_next->ai_socktype = pai->ai_socktype; in explore_copy()
1173 cur->ai_next->ai_protocol = pai->ai_protocol; in explore_copy()
1191 explore_null(const struct addrinfo *pai, const char *servname, in explore_null() argument
1202 if (pai->ai_family == PF_LOCAL) in explore_null()
1209 s = _socket(pai->ai_family, SOCK_DGRAM | SOCK_CLOEXEC, 0); in explore_null()
1216 afd = find_afd(pai->ai_family); in explore_null()
1220 if (pai->ai_flags & AI_PASSIVE) { in explore_null()
1241 explore_numeric(const struct addrinfo *pai, const char *hostname, in explore_numeric() argument
1255 afd = find_afd(pai->ai_family); in explore_numeric()
1284 if (pai->ai_family != AF_INET6 || in explore_numeric()
1285 (pai->ai_flags & AI_V4MAPPED) != AI_V4MAPPED) in explore_numeric()
1290 ai0 = *pai; in explore_numeric()
1292 pai = &ai0; in explore_numeric()
1298 if (pai->ai_family == afd->a_af) { in explore_numeric()
1301 if ((pai->ai_family == AF_INET || in explore_numeric()
1302 pai->ai_family == AF_INET6) && in explore_numeric()
1303 (pai->ai_flags & AI_CANONNAME)) { in explore_numeric()
1332 explore_numeric_scope(const struct addrinfo *pai, const char *hostname, in explore_numeric_scope() argument
1336 return explore_numeric(pai, hostname, servname, res, hostname); in explore_numeric_scope()
1344 afd = find_afd(pai->ai_family); in explore_numeric_scope()
1349 return explore_numeric(pai, hostname, servname, res, hostname); in explore_numeric_scope()
1353 return explore_numeric(pai, hostname, servname, res, hostname); in explore_numeric_scope()
1366 error = explore_numeric(pai, addr, servname, res, hostname); in explore_numeric_scope()
1395 get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str) in get_canonname() argument
1397 if ((pai->ai_flags & AI_CANONNAME) != 0) { in get_canonname()
1406 get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr) in get_ai() argument
1413 if (afd->a_af == AF_INET && (pai->ai_flags & AI_V4MAPPED) != 0) { in get_ai()
1425 memcpy(ai, pai, sizeof(struct addrinfo)); in get_ai()
1444 copy_ai(const struct addrinfo *pai) in copy_ai() argument
1449 l = sizeof(*ai) + pai->ai_addrlen; in copy_ai()
1452 memcpy(ai, pai, sizeof(*ai)); in copy_ai()
1454 memcpy(ai->ai_addr, pai->ai_addr, pai->ai_addrlen); in copy_ai()
1456 if (pai->ai_canonname) { in copy_ai()
1457 l = strlen(pai->ai_canonname) + 1; in copy_ai()
1462 strlcpy(ai->ai_canonname, pai->ai_canonname, l); in copy_ai()
1607 addrconfig(struct addrinfo *pai) in addrconfig() argument
1650 switch(pai->ai_family) { in addrconfig()
1658 pai->ai_family = seen_inet ? AF_INET : AF_INET6; in addrconfig()
1911 explore_fqdn(const struct addrinfo *pai, const char *hostname, in explore_fqdn() argument
1939 if (get_portmatch(pai, servname) != 0) in explore_fqdn()
1943 default_dns_files, hostname, pai)) { in explore_fqdn()
1982 const struct addrinfo *pai, res_state res) in getanswer() argument
2141 ai = *pai; in getanswer()
2176 (void)get_canonname(pai, sentinel.ai_next, qname); in getanswer()
2178 (void)get_canonname(pai, sentinel.ai_next, canonname); in getanswer()
2264 const struct addrinfo *pai; in _dns_getaddrinfo() local
2272 pai = va_arg(ap, const struct addrinfo *); in _dns_getaddrinfo()
2293 if (pai->ai_family == AF_INET6 && in _dns_getaddrinfo()
2294 (pai->ai_flags & AI_V4MAPPED) == AI_V4MAPPED) { in _dns_getaddrinfo()
2295 ai0 = *pai; in _dns_getaddrinfo()
2297 pai = &ai0; in _dns_getaddrinfo()
2300 switch (pai->ai_family) { in _dns_getaddrinfo()
2355 ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai, res); in _dns_getaddrinfo()
2362 if (ai == NULL || pai->ai_family != AF_UNSPEC || in _dns_getaddrinfo()
2363 (pai->ai_flags & (AI_ALL | AI_V4MAPPED)) != AI_V4MAPPED) { in _dns_getaddrinfo()
2364 ai = getanswer(buf, q.n, q.name, q.qtype, pai, res); in _dns_getaddrinfo()
2404 _gethtent(FILE **hostf, const char *name, const struct addrinfo *pai) in _gethtent() argument
2447 hints.ai_family = pai->ai_family; in _gethtent()
2451 if (pai->ai_family == AF_INET6 && in _gethtent()
2452 (pai->ai_flags & AI_V4MAPPED) == AI_V4MAPPED) in _gethtent()
2467 res->ai_flags = pai->ai_flags; in _gethtent()
2468 res->ai_socktype = pai->ai_socktype; in _gethtent()
2469 res->ai_protocol = pai->ai_protocol; in _gethtent()
2471 if (pai->ai_flags & AI_CANONNAME) { in _gethtent()
2472 if (get_canonname(pai, res, cname) != 0) { in _gethtent()
2482 _getht(FILE **hostf, const char *name, const struct addrinfo *pai, in _getht() argument
2487 while ((p = _gethtent(hostf, name, pai)) != NULL) { in _getht()
2500 const struct addrinfo *pai; in _files_getaddrinfo() local
2505 pai = va_arg(ap, struct addrinfo *); in _files_getaddrinfo()
2511 if (pai->ai_family == AF_INET6 && in _files_getaddrinfo()
2512 (pai->ai_flags & (AI_ALL | AI_V4MAPPED)) == AI_V4MAPPED) { in _files_getaddrinfo()
2513 struct addrinfo ai0 = *pai; in _files_getaddrinfo()
2523 cur = _getht(&hostf, name, pai, cur); in _files_getaddrinfo()
2535 _yphostent(char *line, const struct addrinfo *pai) in _yphostent() argument
2581 hints = *pai; in _yphostent()
2583 if (pai->ai_family == AF_INET6 && in _yphostent()
2584 (pai->ai_flags & AI_V4MAPPED) == AI_V4MAPPED) in _yphostent()
2590 res->ai_flags = pai->ai_flags; in _yphostent()
2592 if (pai->ai_flags & AI_CANONNAME) in _yphostent()
2593 (void)get_canonname(pai, res, canonname); in _yphostent()
2621 const struct addrinfo *pai; in _yp_getaddrinfo() local
2628 pai = va_arg(ap, const struct addrinfo *); in _yp_getaddrinfo()
2637 ai = _yphostent(ypbuf, pai); in _yp_getaddrinfo()
2661 if (pai->ai_family == AF_UNSPEC || pai->ai_family == AF_INET || in _yp_getaddrinfo()
2662 ((pai->ai_family == AF_INET6 && in _yp_getaddrinfo()
2663 (pai->ai_flags & AI_V4MAPPED) == AI_V4MAPPED) && in _yp_getaddrinfo()
2664 (ai == NULL || (pai->ai_flags & AI_ALL) == AI_ALL))) { in _yp_getaddrinfo()
2670 ai4 = *pai; in _yp_getaddrinfo()
2671 if (pai->ai_family == AF_UNSPEC) in _yp_getaddrinfo()