Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Nov 2013 11:15:31 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r258163 - user/ae/inet6/sys/netinet6
Message-ID:  <201311151115.rAFBFV5R076557@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311151115.rAFBFV5R076557>