Lines Matching refs:pai

272 	/* external reference: pai, error, and label free */ 	\
273 (ai) = get_ai(pai, (afd), (addr)); \
290 /* external reference: pai, error and label free */ \
291 error = get_canonname(pai, (ai), (str)); \
592 struct addrinfo *pai;
602 pai = &ai;
603 pai->ai_flags = 0;
604 pai->ai_family = PF_UNSPEC;
605 pai->ai_socktype = ANY;
606 pai->ai_protocol = ANY;
607 pai->ai_addrlen = 0;
608 pai->ai_canonname = NULL;
609 pai->ai_addr = NULL;
610 pai->ai_next = NULL;
631 memcpy(pai, hints, sizeof(*pai));
637 if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) {
639 if (pai->ai_family != ex->e_af)
645 if (pai->ai_socktype == ex->e_socktype
646 && pai->ai_protocol != ex->e_protocol) {
658 if (MATCH_FAMILY(pai->ai_family, PF_INET, 1)
660 || MATCH_FAMILY(pai->ai_family, PF_INET6, 1)
663 ai0 = *pai; /* backup *pai */
665 if (pai->ai_family == PF_UNSPEC) {
667 pai->ai_family = PF_INET6;
669 pai->ai_family = PF_INET;
672 error = get_portmatch(pai, servname);
676 *pai = ai0;
679 ai0 = *pai;
683 *pai = ai0;
689 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
691 if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex)))
693 if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex)))
696 if (pai->ai_family == PF_UNSPEC)
697 pai->ai_family = ex->e_af;
698 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
699 pai->ai_socktype = ex->e_socktype;
700 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
701 pai->ai_protocol = ex->e_protocol;
704 error = explore_null(pai, servname, &cur->ai_next);
706 error = explore_numeric_scope(pai, hostname, servname,
726 if (pai->ai_flags & AI_NUMERICHOST)
743 *pai = ai0;
746 if (pai->ai_family != ex->e_af)
749 if (!MATCH(pai->ai_socktype, ex->e_socktype,
753 if (!MATCH(pai->ai_protocol, ex->e_protocol,
758 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
759 pai->ai_socktype = ex->e_socktype;
760 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
761 pai->ai_protocol = ex->e_protocol;
763 error = explore_fqdn(pai, hostname, servname,
796 explore_fqdn(const struct addrinfo *pai, const char *hostname,
809 assert(pai != NULL);
819 if (get_portmatch(pai, servname) != 0)
823 default_dns_files, hostname, pai, iface)) {
858 explore_null(const struct addrinfo *pai, const char *servname,
867 assert(pai != NULL);
879 s = socket(pai->ai_family, SOCK_DGRAM, 0);
889 if (get_portmatch(pai, servname) != 0)
892 afd = find_afd(pai->ai_family);
896 if (pai->ai_flags & AI_PASSIVE) {
924 explore_numeric(const struct addrinfo *pai, const char *hostname,
933 assert(pai != NULL);
945 if (get_portmatch(pai, servname) != 0)
948 afd = find_afd(pai->ai_family);
956 if (pai->ai_family == afd->a_af ||
957 pai->ai_family == PF_UNSPEC /*?*/) {
960 if ((pai->ai_flags & AI_CANONNAME)) {
977 if (pai->ai_family == afd->a_af ||
978 pai->ai_family == PF_UNSPEC /*?*/) {
981 if ((pai->ai_flags & AI_CANONNAME)) {
1011 explore_numeric_scope(const struct addrinfo *pai, const char *hostname,
1015 return explore_numeric(pai, hostname, servname, res, hostname);
1023 assert(pai != NULL);
1031 if (get_portmatch(pai, servname) != 0)
1034 afd = find_afd(pai->ai_family);
1039 return explore_numeric(pai, hostname, servname, res, hostname);
1043 return explore_numeric(pai, hostname, servname, res, hostname);
1056 error = explore_numeric(pai, addr, servname, res, hostname);
1079 get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str)
1082 assert(pai != NULL);
1086 if ((pai->ai_flags & AI_CANONNAME) != 0) {
1095 get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr)
1100 assert(pai != NULL);
1109 memcpy(ai, pai, sizeof(struct addrinfo));
1296 const struct addrinfo *pai)
1315 assert(pai != NULL);
1451 /* don't overwrite pai */
1452 ai = *pai;
1474 (void)get_canonname(pai, sentinel.ai_next, qname);
1476 (void)get_canonname(pai, sentinel.ai_next, canonname);
1887 const struct addrinfo *pai;
1894 pai = va_arg(ap, const struct addrinfo *);
1915 switch (pai->ai_family) {
1923 if (pai->ai_flags & AI_ADDRCONFIG) {
1989 ai = getanswer(buf, q.n, q.name, q.qtype, pai);
1996 ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai);
2043 _gethtent(FILE **hostf, const char *name, const struct addrinfo *pai)
2054 assert(pai != NULL);
2089 hints = *pai;
2096 res->ai_flags = pai->ai_flags;
2098 if (pai->ai_flags & AI_CANONNAME) {
2099 if (get_canonname(pai, res, cname) != 0) {
2113 const struct addrinfo *pai;
2119 pai = va_arg(ap, struct addrinfo *);
2126 while ((p = _gethtent(&hostf, name, pai)) != NULL) {