Lines Matching defs:pai

301 	/* external reference: pai, error, and label free */ \
302 (ai) = get_ai(pai, (afd), (addr)); \
319 /* external reference: pai, error and label free */ \
320 error = get_canonname(pai, (ai), (str)); \
379 struct addrinfo *pai;
397 pai = &ai;
398 pai->ai_flags = 0;
399 pai->ai_family = PF_UNSPEC;
400 pai->ai_socktype = ANY;
401 pai->ai_protocol = ANY;
402 pai->ai_addrlen = 0;
403 pai->ai_canonname = NULL;
404 pai->ai_addr = NULL;
405 pai->ai_next = NULL;
426 memcpy(pai, hints, sizeof(*pai));
432 if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) {
434 if (!MATCH_FAMILY(pai->ai_family, ex->e_af,
437 if (!MATCH(pai->ai_socktype, ex->e_socktype,
440 if (!MATCH(pai->ai_protocol, ex->e_protocol,
458 if (MATCH_FAMILY(pai->ai_family, PF_INET, 1)
460 || MATCH_FAMILY(pai->ai_family, PF_INET6, 1)
463 ai0 = *pai; /* backup *pai */
465 if (pai->ai_family == PF_UNSPEC) {
467 pai->ai_family = PF_INET6;
469 pai->ai_family = PF_INET;
472 error = get_portmatch(pai, servname);
476 *pai = ai0;
479 ai0 = *pai;
488 *pai = ai0;
490 if (!MATCH_FAMILY(pai->ai_family, afd->a_af, 1))
493 if (pai->ai_family == PF_UNSPEC)
494 pai->ai_family = afd->a_af;
497 error = explore_null(pai, servname,
507 error = explore_numeric_scope(pai, hostname, servname,
527 if (pai->ai_flags & AI_NUMERICHOST)
530 if ((pai->ai_flags & AI_ADDRCONFIG) != 0 && !addrconfig(&ai0))
536 *pai = ai0;
537 error = explore_fqdn(pai, hostname, servname, &afai_unspec);
541 *pai = ai0;
543 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
545 if (!MATCH(pai->ai_socktype, ex->e_socktype,
548 if (!MATCH(pai->ai_protocol, ex->e_protocol,
552 if (pai->ai_family == PF_UNSPEC)
553 pai->ai_family = ex->e_af;
554 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
555 pai->ai_socktype = ex->e_socktype;
556 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
557 pai->ai_protocol = ex->e_protocol;
562 if (get_portmatch(pai, servname) != 0)
568 if ((afd = find_afd(pai->ai_family)) == NULL)
576 error = explore_copy(pai, afai, &cur->ai_next);
1089 explore_copy(const struct addrinfo *pai, const struct addrinfo *src0,
1101 if (src->ai_family != pai->ai_family)
1110 cur->ai_next->ai_socktype = pai->ai_socktype;
1111 cur->ai_next->ai_protocol = pai->ai_protocol;
1129 explore_null(const struct addrinfo *pai, const char *servname,
1144 s = _socket(pai->ai_family, SOCK_DGRAM | SOCK_CLOEXEC, 0);
1151 afd = find_afd(pai->ai_family);
1155 if (pai->ai_flags & AI_PASSIVE) {
1176 explore_numeric(const struct addrinfo *pai, const char *hostname,
1187 afd = find_afd(pai->ai_family);
1209 if (pai->ai_family == afd->a_af) {
1212 if ((pai->ai_flags & AI_CANONNAME)) {
1241 explore_numeric_scope(const struct addrinfo *pai, const char *hostname,
1245 return explore_numeric(pai, hostname, servname, res, hostname);
1253 afd = find_afd(pai->ai_family);
1258 return explore_numeric(pai, hostname, servname, res, hostname);
1262 return explore_numeric(pai, hostname, servname, res, hostname);
1275 error = explore_numeric(pai, addr, servname, res, hostname);
1304 get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str)
1306 if ((pai->ai_flags & AI_CANONNAME) != 0) {
1315 get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr)
1345 afd->a_af == AF_INET && pai->ai_socktype == SOCK_STREAM) {
1366 memcpy(ai, pai, sizeof(struct addrinfo));
1384 copy_ai(const struct addrinfo *pai)
1389 l = sizeof(*ai) + pai->ai_addrlen;
1393 memcpy(ai, pai, sizeof(*ai));
1395 memcpy(ai->ai_addr, pai->ai_addr, pai->ai_addrlen);
1397 if (pai->ai_canonname) {
1398 l = strlen(pai->ai_canonname) + 1;
1403 strlcpy(ai->ai_canonname, pai->ai_canonname, l);
1536 * configured on the local system and correlates with pai->ai_family value.
1545 addrconfig(struct addrinfo *pai)
1588 switch(pai->ai_family) {
1596 pai->ai_family = seen_inet ? AF_INET : AF_INET6;
1851 explore_fqdn(const struct addrinfo *pai, const char *hostname,
1879 if (get_portmatch(pai, servname) != 0)
1883 default_dns_files, hostname, pai)) {
1919 const struct addrinfo *pai, res_state res)
2077 /* don't overwrite pai */
2078 ai = *pai;
2113 (void)get_canonname(pai, sentinel.ai_next, qname);
2115 (void)get_canonname(pai, sentinel.ai_next, canonname);
2197 const struct addrinfo *pai;
2203 pai = va_arg(ap, const struct addrinfo *);
2222 switch (pai->ai_family) {
2271 ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai, res);
2278 ai = getanswer(buf, q.n, q.name, q.qtype, pai, res);
2315 _gethtent(FILE **hostf, const char *name, const struct addrinfo *pai)
2358 hints.ai_family = pai->ai_family;
2375 res->ai_flags = pai->ai_flags;
2376 res->ai_socktype = pai->ai_socktype;
2377 res->ai_protocol = pai->ai_protocol;
2379 if (pai->ai_flags & AI_CANONNAME) {
2380 if (get_canonname(pai, res, cname) != 0) {
2394 const struct addrinfo *pai;
2400 pai = va_arg(ap, struct addrinfo *);
2406 while ((p = _gethtent(&hostf, name, pai)) != NULL) {
2422 _yphostent(char *line, const struct addrinfo *pai)
2468 hints = *pai;
2474 res->ai_flags = pai->ai_flags;
2476 if (pai->ai_flags & AI_CANONNAME)
2477 (void)get_canonname(pai, res, canonname);
2505 const struct addrinfo *pai;
2512 pai = va_arg(ap, const struct addrinfo *);
2518 if (pai->ai_family == PF_UNSPEC || pai->ai_family == PF_INET) {
2524 ai4 = *pai;
2540 ai = _yphostent(ypbuf, pai);