svn commit: r258163 - user/ae/inet6/sys/netinet6

Andrey V. Elsukov ae at FreeBSD.org
Fri Nov 15 11:15:31 UTC 2013


Author: ae
Date: Fri Nov 15 11:15:30 2013
New Revision: 258163
URL: http://svnweb.freebsd.org/changeset/base/258163

Log:
  Properly initialize sin6_scope_id instead of embedding zone index.

Modified:
  user/ae/inet6/sys/netinet6/sctp6_usrreq.c

Modified: user/ae/inet6/sys/netinet6/sctp6_usrreq.c
==============================================================================
--- user/ae/inet6/sys/netinet6/sctp6_usrreq.c	Fri Nov 15 10:28:59 2013	(r258162)
+++ user/ae/inet6/sys/netinet6/sctp6_usrreq.c	Fri Nov 15 11:15:30 2013	(r258163)
@@ -138,17 +138,17 @@ sctp6_input_with_port(struct mbuf **i_pa
 	src.sin6_len = sizeof(struct sockaddr_in6);
 	src.sin6_port = sh->src_port;
 	src.sin6_addr = ip6->ip6_src;
-	if (in6_setscope(&src.sin6_addr, m->m_pkthdr.rcvif, NULL) != 0) {
-		goto out;
-	}
+	src.sin6_scope_id = in6_getscopezone(m->m_pkthdr.rcvif,
+	    in6_addrscope(&ip6->ip6_src));
+
 	memset(&dst, 0, sizeof(struct sockaddr_in6));
 	dst.sin6_family = AF_INET6;
 	dst.sin6_len = sizeof(struct sockaddr_in6);
 	dst.sin6_port = sh->dest_port;
 	dst.sin6_addr = ip6->ip6_dst;
-	if (in6_setscope(&dst.sin6_addr, m->m_pkthdr.rcvif, NULL) != 0) {
-		goto out;
-	}
+	dst.sin6_scope_id = in6_getscopezone(m->m_pkthdr.rcvif,
+	    in6_addrscope(&ip6->ip6_dst));
+
 	if (faithprefix_p != NULL && (*faithprefix_p) (&dst.sin6_addr)) {
 		/* XXX send icmp6 host/port unreach? */
 		goto out;


More information about the svn-src-user mailing list