Lines Matching defs:pai

276 	/* external reference: pai, error, and label free */ 	\
277 (ai) = get_ai(pai, (afd), (addr)); \
294 /* external reference: pai, error and label free */ \
295 error = get_canonname(pai, (ai), (str)); \
596 struct addrinfo *pai;
606 pai = &ai;
607 pai->ai_flags = 0;
608 pai->ai_family = PF_UNSPEC;
609 pai->ai_socktype = ANY;
610 pai->ai_protocol = ANY;
611 pai->ai_addrlen = 0;
612 pai->ai_canonname = NULL;
613 pai->ai_addr = NULL;
614 pai->ai_next = NULL;
635 memcpy(pai, hints, sizeof(*pai));
641 if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) {
643 if (pai->ai_family != ex->e_af)
649 if (pai->ai_socktype == ex->e_socktype
650 && pai->ai_protocol != ex->e_protocol) {
662 if (MATCH_FAMILY(pai->ai_family, PF_INET, 1)
664 || MATCH_FAMILY(pai->ai_family, PF_INET6, 1)
667 ai0 = *pai; /* backup *pai */
669 if (pai->ai_family == PF_UNSPEC) {
671 pai->ai_family = PF_INET6;
673 pai->ai_family = PF_INET;
676 error = get_portmatch(pai, servname);
680 *pai = ai0;
683 ai0 = *pai;
687 *pai = ai0;
693 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
695 if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex)))
697 if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex)))
700 if (pai->ai_family == PF_UNSPEC)
701 pai->ai_family = ex->e_af;
702 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
703 pai->ai_socktype = ex->e_socktype;
704 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
705 pai->ai_protocol = ex->e_protocol;
708 error = explore_null(pai, servname, &cur->ai_next);
710 error = explore_numeric_scope(pai, hostname, servname,
730 if (pai->ai_flags & AI_NUMERICHOST)
747 *pai = ai0;
750 if (pai->ai_family != ex->e_af)
753 if (!MATCH(pai->ai_socktype, ex->e_socktype,
757 if (!MATCH(pai->ai_protocol, ex->e_protocol,
762 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
763 pai->ai_socktype = ex->e_socktype;
764 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
765 pai->ai_protocol = ex->e_protocol;
768 pai, hostname, servname, &cur->ai_next, netcontext);
800 explore_fqdn(const struct addrinfo *pai, const char *hostname,
814 assert(pai != NULL);
824 if (get_portmatch(pai, servname) != 0)
828 default_dns_files, hostname, pai, netcontext)) {
863 explore_null(const struct addrinfo *pai, const char *servname,
872 assert(pai != NULL);
884 s = socket(pai->ai_family, SOCK_DGRAM | SOCK_CLOEXEC, 0);
894 if (get_portmatch(pai, servname) != 0)
897 afd = find_afd(pai->ai_family);
901 if (pai->ai_flags & AI_PASSIVE) {
929 explore_numeric(const struct addrinfo *pai, const char *hostname,
938 assert(pai != NULL);
950 if (get_portmatch(pai, servname) != 0)
953 afd = find_afd(pai->ai_family);
961 if (pai->ai_family == afd->a_af ||
962 pai->ai_family == PF_UNSPEC /*?*/) {
965 if ((pai->ai_flags & AI_CANONNAME)) {
982 if (pai->ai_family == afd->a_af ||
983 pai->ai_family == PF_UNSPEC /*?*/) {
986 if ((pai->ai_flags & AI_CANONNAME)) {
1016 explore_numeric_scope(const struct addrinfo *pai, const char *hostname,
1020 return explore_numeric(pai, hostname, servname, res, hostname);
1028 assert(pai != NULL);
1036 if (get_portmatch(pai, servname) != 0)
1039 afd = find_afd(pai->ai_family);
1044 return explore_numeric(pai, hostname, servname, res, hostname);
1048 return explore_numeric(pai, hostname, servname, res, hostname);
1061 error = explore_numeric(pai, addr, servname, res, hostname);
1084 get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str)
1087 assert(pai != NULL);
1091 if ((pai->ai_flags & AI_CANONNAME) != 0) {
1100 get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr)
1105 assert(pai != NULL);
1114 memcpy(ai, pai, sizeof(struct addrinfo));
1312 const struct addrinfo *pai)
1331 assert(pai != NULL);
1470 /* don't overwrite pai */
1471 ai = *pai;
1493 (void)get_canonname(pai, sentinel.ai_next, qname);
1495 (void)get_canonname(pai, sentinel.ai_next, canonname);
1900 const struct addrinfo *pai;
1907 pai = va_arg(ap, const struct addrinfo *);
1928 switch (pai->ai_family) {
1936 if (pai->ai_flags & AI_ADDRCONFIG) {
1997 ai = getanswer(buf, q.n, q.name, q.qtype, pai);
2004 ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai);
2051 _gethtent(FILE **hostf, const char *name, const struct addrinfo *pai)
2062 assert(pai != NULL);
2097 hints = *pai;
2104 res->ai_flags = pai->ai_flags;
2106 if (pai->ai_flags & AI_CANONNAME) {
2107 if (get_canonname(pai, res, cname) != 0) {
2121 const struct addrinfo *pai;
2127 pai = va_arg(ap, struct addrinfo *);
2134 while ((p = _gethtent(&hostf, name, pai)) != NULL) {