Lines Matching full:as

9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
43 struct asr_query *as; in getnameinfo_async() local
46 if ((as = _asr_async_new(ac, ASR_GETNAMEINFO)) == NULL) in getnameinfo_async()
48 as->as_run = getnameinfo_async_run; in getnameinfo_async()
51 memmove(&as->as.ni.sa.sa, sa, sizeof (as->as.ni.sa.sain)); in getnameinfo_async()
53 memmove(&as->as.ni.sa.sa, sa, sizeof (as->as.ni.sa.sain6)); in getnameinfo_async()
55 as->as.ni.sa.sa.sa_len = slen; in getnameinfo_async()
56 as->as.ni.hostname = host; in getnameinfo_async()
57 as->as.ni.hostnamelen = hostlen; in getnameinfo_async()
58 as->as.ni.servname = serv; in getnameinfo_async()
59 as->as.ni.servnamelen = servlen; in getnameinfo_async()
60 as->as.ni.flags = flags; in getnameinfo_async()
63 return (as); in getnameinfo_async()
66 if (as) in getnameinfo_async()
67 _asr_async_free(as); in getnameinfo_async()
74 getnameinfo_async_run(struct asr_query *as, struct asr_result *ar) in getnameinfo_async_run() argument
81 switch (as->as_state) { in getnameinfo_async_run()
87 if (as->as.ni.sa.sa.sa_family != AF_INET && in getnameinfo_async_run()
88 as->as.ni.sa.sa.sa_family != AF_INET6) { in getnameinfo_async_run()
90 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
94 if ((as->as.ni.sa.sa.sa_family == AF_INET && in getnameinfo_async_run()
95 (as->as.ni.sa.sa.sa_len != sizeof (as->as.ni.sa.sain))) || in getnameinfo_async_run()
96 (as->as.ni.sa.sa.sa_family == AF_INET6 && in getnameinfo_async_run()
97 (as->as.ni.sa.sa.sa_len != sizeof (as->as.ni.sa.sain6)))) { in getnameinfo_async_run()
99 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
104 if (_servname(as) == -1) { in getnameinfo_async_run()
106 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
110 if (as->as.ni.hostname == NULL || as->as.ni.hostnamelen == 0) { in getnameinfo_async_run()
112 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
116 if (as->as.ni.flags & NI_NUMERICHOST) { in getnameinfo_async_run()
117 if (_numerichost(as) == -1) { in getnameinfo_async_run()
128 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
132 if (as->as.ni.sa.sa.sa_family == AF_INET) { in getnameinfo_async_run()
133 addrlen = sizeof(as->as.ni.sa.sain.sin_addr); in getnameinfo_async_run()
134 addr = &as->as.ni.sa.sain.sin_addr; in getnameinfo_async_run()
136 addrlen = sizeof(as->as.ni.sa.sain6.sin6_addr); in getnameinfo_async_run()
137 addr = &as->as.ni.sa.sain6.sin6_addr; in getnameinfo_async_run()
143 as->as_subq = _gethostbyaddr_async_ctx(addr, addrlen, in getnameinfo_async_run()
144 as->as.ni.sa.sa.sa_family, in getnameinfo_async_run()
145 as->as_ctx); in getnameinfo_async_run()
146 if (as->as_subq == NULL) { in getnameinfo_async_run()
148 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
152 async_set_state(as, ASR_STATE_SUBQUERY); in getnameinfo_async_run()
157 if ((r = asr_run(as->as_subq, ar)) == ASYNC_COND) in getnameinfo_async_run()
163 as->as_subq = NULL; in getnameinfo_async_run()
166 if (as->as.ni.flags & NI_NAMEREQD) { in getnameinfo_async_run()
168 } else if (_numerichost(as) == -1) { in getnameinfo_async_run()
180 if (strlcpy(as->as.ni.hostname, in getnameinfo_async_run()
182 as->as.ni.hostnamelen) >= as->as.ni.hostnamelen) in getnameinfo_async_run()
189 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
198 async_set_state(as, ASR_STATE_HALT); in getnameinfo_async_run()
210 _servname(struct asr_query *as) in _servname() argument
215 char *buf = as->as.ni.servname; in _servname()
216 size_t n, buflen = as->as.ni.servnamelen; in _servname()
218 if (as->as.ni.servname == NULL || as->as.ni.servnamelen == 0) in _servname()
221 if (as->as.ni.sa.sa.sa_family == AF_INET) in _servname()
222 port = as->as.ni.sa.sain.sin_port; in _servname()
224 port = as->as.ni.sa.sain6.sin6_port; in _servname()
226 if (!(as->as.ni.flags & NI_NUMERICSERV)) { in _servname()
228 r = getservbyport_r(port, (as->as.ni.flags & NI_DGRAM) ? in _servname()
251 _numerichost(struct asr_query *as) in _numerichost() argument
256 char *buf = as->as.ni.hostname; in _numerichost()
257 size_t buflen = as->as.ni.hostnamelen; in _numerichost()
259 if (as->as.ni.sa.sa.sa_family == AF_INET) in _numerichost()
260 addr = &as->as.ni.sa.sain.sin_addr; in _numerichost()
262 addr = &as->as.ni.sa.sain6.sin6_addr; in _numerichost()
264 if (inet_ntop(as->as.ni.sa.sa.sa_family, addr, buf, buflen) == NULL) in _numerichost()
267 if (as->as.ni.sa.sa.sa_family == AF_INET6 && in _numerichost()
268 as->as.ni.sa.sain6.sin6_scope_id) { in _numerichost()
273 ifidx = as->as.ni.sa.sain6.sin6_scope_id; in _numerichost()
276 if (IN6_IS_ADDR_LINKLOCAL(&as->as.ni.sa.sain6.sin6_addr) || in _numerichost()
277 IN6_IS_ADDR_MC_LINKLOCAL(&as->as.ni.sa.sain6.sin6_addr) || in _numerichost()
278 IN6_IS_ADDR_MC_INTFACELOCAL(&as->as.ni.sa.sain6.sin6_addr)) in _numerichost()