Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Oct 2013 11:45:32 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r256677 - user/ae/inet6/sys/netinet6
Message-ID:  <201310171145.r9HBjWtT043925@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ae
Date: Thu Oct 17 11:45:31 2013
New Revision: 256677
URL: http://svnweb.freebsd.org/changeset/base/256677

Log:
  Fill sin6_scope_id instead of embedding zone id.

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

Modified: user/ae/inet6/sys/netinet6/icmp6.c
==============================================================================
--- user/ae/inet6/sys/netinet6/icmp6.c	Thu Oct 17 11:43:55 2013	(r256676)
+++ user/ae/inet6/sys/netinet6/icmp6.c	Thu Oct 17 11:45:31 2013	(r256677)
@@ -927,11 +927,11 @@ icmp6_input(struct mbuf **mp, int *offp,
 static int
 icmp6_notify_error(struct mbuf **mp, int off, int icmp6len, int code)
 {
+	struct sockaddr_in6 icmp6src, icmp6dst;
 	struct mbuf *m = *mp;
 	struct icmp6_hdr *icmp6;
 	struct ip6_hdr *eip6;
 	u_int32_t notifymtu;
-	struct sockaddr_in6 icmp6src, icmp6dst;
 
 	if (icmp6len < sizeof(struct icmp6_hdr) + sizeof(struct ip6_hdr)) {
 		ICMP6STAT_INC(icp6s_tooshort);
@@ -1113,14 +1113,15 @@ icmp6_notify_error(struct mbuf **mp, int
 			icmp6dst.sin6_addr = eip6->ip6_dst;
 		else
 			icmp6dst.sin6_addr = *finaldst;
-		if (in6_setscope(&icmp6dst.sin6_addr, m->m_pkthdr.rcvif, NULL))
-			goto freeit;
+		icmp6dst.sin6_scope_id = in6_getscopezone(m->m_pkthdr.rcvif,
+		    in6_addrscope(&icmp6dst.sin6_addr));
+
 		bzero(&icmp6src, sizeof(icmp6src));
 		icmp6src.sin6_len = sizeof(struct sockaddr_in6);
 		icmp6src.sin6_family = AF_INET6;
 		icmp6src.sin6_addr = eip6->ip6_src;
-		if (in6_setscope(&icmp6src.sin6_addr, m->m_pkthdr.rcvif, NULL))
-			goto freeit;
+		icmp6src.sin6_scope_id = in6_getscopezone(m->m_pkthdr.rcvif,
+		    in6_addrscope(&icmp6src.sin6_addr));
 		icmp6src.sin6_flowinfo =
 		    (eip6->ip6_flow & IPV6_FLOWLABEL_MASK);
 



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