Lines Matching refs:sin6

144 in6pcb_bind_addr(struct inpcb *inp, struct sockaddr_in6 *sin6, struct lwp *l)  in in6pcb_bind_addr()  argument
153 if (sin6->sin6_family != AF_INET6) in in6pcb_bind_addr()
157 if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) in in6pcb_bind_addr()
161 if ((error = sa6_embedscope(sin6, ip6_use_defzone)) != 0) in in6pcb_bind_addr()
165 if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { in in6pcb_bind_addr()
170 if (sin6->sin6_addr.s6_addr32[3]) { in in6pcb_bind_addr()
176 bcopy(&sin6->sin6_addr.s6_addr32[3], in in6pcb_bind_addr()
188 } else if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) { in in6pcb_bind_addr()
190 } else if (!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) { in in6pcb_bind_addr()
194 ifa = ifa_ifwithaddr(sin6tosa(sin6)); in in6pcb_bind_addr()
222 in6p_laddr(inp) = sin6->sin6_addr; in in6pcb_bind_addr()
233 in6pcb_bind_port(struct inpcb *inp, struct sockaddr_in6 *sin6, struct lwp *l) in in6pcb_bind_port() argument
245 if (sin6->sin6_port != 0) { in in6pcb_bind_port()
249 if (ntohs(sin6->sin6_port) < IPV6PORT_RESERVED) in in6pcb_bind_port()
256 req, so, sin6, NULL); in in6pcb_bind_port()
261 if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) { in in6pcb_bind_port()
273 if (sin6->sin6_port != 0) { in in6pcb_bind_port()
274 if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { in in6pcb_bind_port()
280 *(struct in_addr *)&sin6->sin6_addr.s6_addr32[3], in in6pcb_bind_port()
281 sin6->sin6_port, wild, &vestige); in in6pcb_bind_port()
297 t = in6pcb_lookup_local(table, &sin6->sin6_addr, in in6pcb_bind_port()
298 sin6->sin6_port, wild, &vestige); in in6pcb_bind_port()
308 if (sin6->sin6_port == 0) { in in6pcb_bind_port()
310 e = in6pcb_set_port(sin6, inp, l); in in6pcb_bind_port()
314 inp->inp_lport = sin6->sin6_port; in in6pcb_bind_port()
326 in6pcb_bind(void *v, struct sockaddr_in6 *sin6, struct lwp *l) in in6pcb_bind() argument
344 if (NULL != sin6) { in in6pcb_bind()
346 if (sin6->sin6_len != sizeof(*sin6)) in in6pcb_bind()
352 sin6 = &lsin6; in in6pcb_bind()
356 error = in6pcb_bind_addr(inp, sin6, l); in in6pcb_bind()
361 error = in6pcb_bind_port(inp, sin6, l); in in6pcb_bind()
386 in6pcb_connect(void *v, struct sockaddr_in6 *sin6, struct lwp *l) in in6pcb_connect() argument
407 if (sin6->sin6_len != sizeof(*sin6)) in in6pcb_connect()
409 if (sin6->sin6_family != AF_INET6) in in6pcb_connect()
411 if (sin6->sin6_port == 0) in in6pcb_connect()
414 if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr) && in in6pcb_connect()
418 if (sin6->sin6_scope_id == 0 && !ip6_use_defzone) in in6pcb_connect()
420 if ((error = sa6_embedscope(sin6, ip6_use_defzone)) != 0) in in6pcb_connect()
424 if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { in in6pcb_connect()
438 tmp = *sin6; in in6pcb_connect()
439 sin6 = &tmp; in in6pcb_connect()
453 memcpy(&sin.sin_addr, &sin6->sin6_addr.s6_addr32[3], in in6pcb_connect()
479 error = in6_selectsrc(sin6, in6p_outputopts(inp), in in6pcb_connect()
485 (error = in6_setscope(&sin6->sin6_addr, ifp, NULL)) != 0) { in in6pcb_connect()
507 if (in6pcb_lookup(inp->inp_table, &sin6->sin6_addr, in in6pcb_connect()
508 sin6->sin6_port, in in6pcb_connect()
524 in6p_faddr(inp) = sin6->sin6_addr; in in6pcb_connect()
525 inp->inp_fport = sin6->sin6_port; in in6pcb_connect()
566 in6pcb_fetch_sockaddr(struct inpcb *inp, struct sockaddr_in6 *sin6) in in6pcb_fetch_sockaddr() argument
572 sockaddr_in6_init(sin6, &in6p_laddr(inp), inp->inp_lport, 0, 0); in in6pcb_fetch_sockaddr()
573 (void)sa6_recoverscope(sin6); /* XXX: should catch errors */ in in6pcb_fetch_sockaddr()
577 in6pcb_fetch_peeraddr(struct inpcb *inp, struct sockaddr_in6 *sin6) in in6pcb_fetch_peeraddr() argument
583 sockaddr_in6_init(sin6, &in6p_faddr(inp), inp->inp_fport, 0, 0); in in6pcb_fetch_peeraddr()
584 (void)sa6_recoverscope(sin6); /* XXX: should catch errors */ in in6pcb_fetch_peeraddr()