Lines Matching refs:pai

227 	/* external reference: pai, error, and label free */ \
228 (ai) = get_ai(pai, (afd), (addr)); \
245 /* external reference: pai, error and label free */ \
246 error = get_canonname(pai, (ai), (str)); \
329 struct addrinfo *pai;
334 pai = &ai;
335 pai->ai_flags = 0;
336 pai->ai_family = PF_UNSPEC;
337 pai->ai_socktype = ANY;
338 pai->ai_protocol = ANY;
346 pai->_ai_pad = 0;
348 pai->ai_addrlen = 0;
349 pai->ai_canonname = NULL;
350 pai->ai_addr = NULL;
351 pai->ai_next = NULL;
370 memcpy(pai, hints, sizeof(*pai));
377 pai->_ai_pad = 0;
383 if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) {
385 if (pai->ai_family != ex->e_af)
391 if (pai->ai_socktype == ex->e_socktype &&
392 pai->ai_protocol != ex->e_protocol) {
404 switch (pai->ai_flags & (AI_ALL | AI_V4MAPPED)) {
407 if (pai->ai_family != AF_INET6)
408 pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED);
415 pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED);
425 if (MATCH_FAMILY(pai->ai_family, PF_INET, 1)
427 || MATCH_FAMILY(pai->ai_family, PF_INET6, 1)
430 ai0 = *pai; /* backup *pai */
432 if (pai->ai_family == PF_UNSPEC) {
434 pai->ai_family = PF_INET6;
436 pai->ai_family = PF_INET;
439 error = get_portmatch(pai, servname);
443 *pai = ai0;
446 ai0 = *pai;
450 *pai = ai0;
452 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
454 if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex)))
456 if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex)))
459 if (pai->ai_family == PF_UNSPEC)
460 pai->ai_family = ex->e_af;
461 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
462 pai->ai_socktype = ex->e_socktype;
463 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
464 pai->ai_protocol = ex->e_protocol;
469 if (get_portmatch(pai, servname) != 0)
477 if (!addrconfig(pai->ai_family))
479 error = explore_null(pai, servname, &cur->ai_next);
481 error = explore_numeric_scope(pai, hostname, servname,
499 if (pai->ai_flags & AI_NUMERICHOST)
516 *pai = ai0;
517 error = explore_fqdn(pai, hostname, servname, &afai);
533 *pai = ai0;
535 if (pai->ai_family == PF_UNSPEC)
536 pai->ai_family = ex->e_af;
538 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
540 if (!MATCH(pai->ai_socktype, ex->e_socktype,
544 if (!MATCH(pai->ai_protocol, ex->e_protocol,
554 if ((pai->ai_flags & AI_ADDRCONFIG) != 0 &&
555 !addrconfig(pai->ai_family))
559 if (pai->ai_family == PF_UNSPEC)
560 pai->ai_family = ex->e_af;
561 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
562 pai->ai_socktype = ex->e_socktype;
563 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
564 pai->ai_protocol = ex->e_protocol;
569 if (get_portmatch(pai, servname) != 0)
572 if ((error = explore_copy(pai, afai, &cur->ai_next)) != 0) {
608 explore_fqdn(pai, hostname, servname, res)
609 const struct addrinfo *pai;
627 if (get_portmatch(pai, servname) != 0)
646 result = (*ho->addrinfo)(ho, hostname, pai);
691 explore_copy(pai, src0, res)
692 const struct addrinfo *pai; /*%< seed */
705 if (src->ai_family != pai->ai_family)
714 cur->ai_next->ai_socktype = pai->ai_socktype;
715 cur->ai_next->ai_protocol = pai->ai_protocol;
733 explore_null(pai, servname, res)
734 const struct addrinfo *pai;
747 afd = find_afd(pai->ai_family);
751 if (pai->ai_flags & AI_PASSIVE) {
779 explore_numeric(pai, hostname, servname, res)
780 const struct addrinfo *pai;
795 afd = find_afd(pai->ai_family);
803 if (pai->ai_family == afd->a_af ||
804 pai->ai_family == PF_UNSPEC /*?*/) {
816 if (pai->ai_family == afd->a_af ||
817 pai->ai_family == PF_UNSPEC /*?*/) {
842 explore_numeric_scope(pai, hostname, servname, res)
843 const struct addrinfo *pai;
849 return explore_numeric(pai, hostname, servname, res);
857 afd = find_afd(pai->ai_family);
862 return explore_numeric(pai, hostname, servname, res);
866 return explore_numeric(pai, hostname, servname, res);
879 error = explore_numeric(pai, addr, servname, res);
904 get_canonname(pai, ai, str)
905 const struct addrinfo *pai;
909 if ((pai->ai_flags & AI_CANONNAME) != 0) {
919 get_ai(pai, afd, addr)
920 const struct addrinfo *pai;
932 memcpy(ai, pai, sizeof(struct addrinfo));
947 copy_ai(pai)
948 const struct addrinfo *pai;
953 l = sizeof(*ai) + pai->ai_addrlen;
957 memcpy(ai, pai, sizeof(*ai));
959 memcpy(ai->ai_addr, pai->ai_addr, pai->ai_addrlen);
961 if (pai->ai_canonname) {
962 l = strlen(pai->ai_canonname) + 1;
967 strcpy(ai->ai_canonname, pai->ai_canonname); /* (checked) */
1157 hostent2addrinfo(hp, pai)
1159 const struct addrinfo *pai;
1167 if (pai->ai_family != AF_UNSPEC && af != pai->ai_family)
1196 if ((pai->ai_flags & AI_CANONNAME) != 0) {
1219 addr2addrinfo(pai, cp)
1220 const struct addrinfo *pai;
1225 afd = find_afd(pai->ai_family);
1229 return(get_ai(pai, afd, cp));