Lines Matching refs:pai

269 	/* external reference: pai, error, and label free */ 	\
270 (ai) = get_ai(pai, (afd), (addr)); \
287 /* external reference: pai, error and label free */ \
288 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)
746 *pai = ai0;
749 if (pai->ai_family != ex->e_af)
752 if (!MATCH(pai->ai_socktype, ex->e_socktype,
756 if (!MATCH(pai->ai_protocol, ex->e_protocol,
761 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
762 pai->ai_socktype = ex->e_socktype;
763 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
764 pai->ai_protocol = ex->e_protocol;
766 error = explore_fqdn(pai, hostname, servname,
799 explore_fqdn(const struct addrinfo *pai, const char *hostname,
812 assert(pai != NULL);
822 if (get_portmatch(pai, servname) != 0)
826 default_dns_files, hostname, pai)) {
861 explore_null(const struct addrinfo *pai, const char *servname,
870 assert(pai != NULL);
882 s = socket(pai->ai_family, SOCK_DGRAM, 0);
892 if (get_portmatch(pai, servname) != 0)
895 afd = find_afd(pai->ai_family);
899 if (pai->ai_flags & AI_PASSIVE) {
927 explore_numeric(const struct addrinfo *pai, const char *hostname,
936 assert(pai != NULL);
948 if (get_portmatch(pai, servname) != 0)
951 afd = find_afd(pai->ai_family);
959 if (pai->ai_family == afd->a_af ||
960 pai->ai_family == PF_UNSPEC /*?*/) {
963 if ((pai->ai_flags & AI_CANONNAME)) {
980 if (pai->ai_family == afd->a_af ||
981 pai->ai_family == PF_UNSPEC /*?*/) {
984 if ((pai->ai_flags & AI_CANONNAME)) {
1014 explore_numeric_scope(const struct addrinfo *pai, const char *hostname,
1018 return explore_numeric(pai, hostname, servname, res, hostname);
1026 assert(pai != NULL);
1034 if (get_portmatch(pai, servname) != 0)
1037 afd = find_afd(pai->ai_family);
1042 return explore_numeric(pai, hostname, servname, res, hostname);
1046 return explore_numeric(pai, hostname, servname, res, hostname);
1059 error = explore_numeric(pai, addr, servname, res, hostname);
1082 get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str)
1085 assert(pai != NULL);
1089 if ((pai->ai_flags & AI_CANONNAME) != 0) {
1098 get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr)
1103 assert(pai != NULL);
1112 memcpy(ai, pai, sizeof(struct addrinfo));
1299 const struct addrinfo *pai)
1318 assert(pai != NULL);
1454 /* don't overwrite pai */
1455 ai = *pai;
1477 (void)get_canonname(pai, sentinel.ai_next, qname);
1479 (void)get_canonname(pai, sentinel.ai_next, canonname);
1877 const struct addrinfo *pai;
1883 pai = va_arg(ap, const struct addrinfo *);
1903 switch (pai->ai_family) {
1911 if (pai->ai_flags & AI_ADDRCONFIG) {
1973 ai = getanswer(buf, q.n, q.name, q.qtype, pai);
1980 ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai);
2027 _gethtent(FILE **hostf, const char *name, const struct addrinfo *pai)
2038 assert(pai != NULL);
2073 hints = *pai;
2080 res->ai_flags = pai->ai_flags;
2082 if (pai->ai_flags & AI_CANONNAME) {
2083 if (get_canonname(pai, res, cname) != 0) {
2097 const struct addrinfo *pai;
2103 pai = va_arg(ap, struct addrinfo *);
2110 while ((p = _gethtent(&hostf, name, pai)) != NULL) {