Home | History | Annotate | Download | only in net

Lines Matching refs: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)); \
600 struct addrinfo *pai;
610 pai = &ai;
611 pai->ai_flags = 0;
612 pai->ai_family = PF_UNSPEC;
613 pai->ai_socktype = ANY;
614 pai->ai_protocol = ANY;
615 pai->ai_addrlen = 0;
616 pai->ai_canonname = NULL;
617 pai->ai_addr = NULL;
618 pai->ai_next = NULL;
639 memcpy(pai, hints, sizeof(*pai));
645 if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) {
647 if (pai->ai_family != ex->e_af)
653 if (pai->ai_socktype == ex->e_socktype
654 && pai->ai_protocol != ex->e_protocol) {
666 if (MATCH_FAMILY(pai->ai_family, PF_INET, 1)
668 || MATCH_FAMILY(pai->ai_family, PF_INET6, 1)
671 ai0 = *pai; /* backup *pai */
673 if (pai->ai_family == PF_UNSPEC) {
675 pai->ai_family = PF_INET6;
677 pai->ai_family = PF_INET;
680 error = get_portmatch(pai, servname);
684 *pai = ai0;
687 ai0 = *pai;
691 *pai = ai0;
697 if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex)))
699 if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex)))
701 if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex)))
704 if (pai->ai_family == PF_UNSPEC)
705 pai->ai_family = ex->e_af;
706 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
707 pai->ai_socktype = ex->e_socktype;
708 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
709 pai->ai_protocol = ex->e_protocol;
712 error = explore_null(pai, servname, &cur->ai_next);
714 error = explore_numeric_scope(pai, hostname, servname,
734 if (pai->ai_flags & AI_NUMERICHOST)
751 *pai = ai0;
754 if (pai->ai_family != ex->e_af)
757 if (!MATCH(pai->ai_socktype, ex->e_socktype,
761 if (!MATCH(pai->ai_protocol, ex->e_protocol,
766 if (pai->ai_socktype == ANY && ex->e_socktype != ANY)
767 pai->ai_socktype = ex->e_socktype;
768 if (pai->ai_protocol == ANY && ex->e_protocol != ANY)
769 pai->ai_protocol = ex->e_protocol;
771 error = explore_fqdn(pai, hostname, servname,
804 explore_fqdn(const struct addrinfo *pai, const char *hostname,
817 assert(pai != NULL);
827 if (get_portmatch(pai, servname) != 0)
831 default_dns_files, hostname, pai, netid, mark)) {
866 explore_null(const struct addrinfo *pai, const char *servname,
875 assert(pai != NULL);
887 s = socket(pai->ai_family, SOCK_DGRAM | SOCK_CLOEXEC, 0);
897 if (get_portmatch(pai, servname) != 0)
900 afd = find_afd(pai->ai_family);
904 if (pai->ai_flags & AI_PASSIVE) {
932 explore_numeric(const struct addrinfo *pai, const char *hostname,
941 assert(pai != NULL);
953 if (get_portmatch(pai, servname) != 0)
956 afd = find_afd(pai->ai_family);
964 if (pai->ai_family == afd->a_af ||
965 pai->ai_family == PF_UNSPEC /*?*/) {
968 if ((pai->ai_flags & AI_CANONNAME)) {
985 if (pai->ai_family == afd->a_af ||
986 pai->ai_family == PF_UNSPEC /*?*/) {
989 if ((pai->ai_flags & AI_CANONNAME)) {
1019 explore_numeric_scope(const struct addrinfo *pai, const char *hostname,
1023 return explore_numeric(pai, hostname, servname, res, hostname);
1031 assert(pai != NULL);
1039 if (get_portmatch(pai, servname) != 0)
1042 afd = find_afd(pai->ai_family);
1047 return explore_numeric(pai, hostname, servname, res, hostname);
1051 return explore_numeric(pai, hostname, servname, res, hostname);
1064 error = explore_numeric(pai, addr, servname, res, hostname);
1087 get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str)
1090 assert(pai != NULL);
1094 if ((pai->ai_flags & AI_CANONNAME) != 0) {
1103 get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr)
1108 assert(pai != NULL);
1117 memcpy(ai, pai, sizeof(struct addrinfo));
1304 const struct addrinfo *pai)
1323 assert(pai != NULL);
1459 /* don't overwrite pai */
1460 ai = *pai;
1482 (void)get_canonname(pai, sentinel.ai_next, qname);
1484 (void)get_canonname(pai, sentinel.ai_next, canonname);
1883 const struct addrinfo *pai;
1890 pai = va_arg(ap, const struct addrinfo *);
1912 switch (pai->ai_family) {
1920 if (pai->ai_flags & AI_ADDRCONFIG) {
1982 ai = getanswer(buf, q.n, q.name, q.qtype, pai);
1989 ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai);
2036 _gethtent(FILE **hostf, const char *name, const struct addrinfo *pai)
2047 assert(pai != NULL);
2082 hints = *pai;
2089 res->ai_flags = pai->ai_flags;
2091 if (pai->ai_flags & AI_CANONNAME) {
2092 if (get_canonname(pai, res, cname) != 0) {
2106 const struct addrinfo *pai;
2112 pai = va_arg(ap, struct addrinfo *);
2119 while ((p = _gethtent(&hostf, name, pai)) != NULL) {