Пример #1
0
void
in6_setpeeraddr(struct in6pcb *in6p, struct mbuf *nam)
{
	struct sockaddr_in6 *sin6;

	if (in6p->in6p_af != AF_INET6)
		return;

	nam->m_len = sizeof(*sin6);
	sin6 = mtod(nam, struct sockaddr_in6 *);
	sockaddr_in6_init(sin6, &in6p->in6p_faddr, in6p->in6p_fport, 0, 0);
	(void)sa6_recoverscope(sin6); /* XXX: should catch errors */
}
Пример #2
0
struct sockaddr *
sockaddr_in6_externalize(struct sockaddr *dst, socklen_t socklen,
    const struct sockaddr *src)
{
	struct sockaddr_in6 *sin6;

	sin6 = satosin6(sockaddr_copy(dst, socklen, src));

	if (sin6 == NULL || sa6_recoverscope(sin6) != 0)
		return NULL;

	return dst;
}