Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Feb 2010 18:01:50 GMT
From:      Ana Kukec <anchie@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 174594 for review
Message-ID:  <201002111801.o1BI1oHa048047@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=174594

Change 174594 by anchie@anchie_malimis on 2010/02/11 18:01:39

	Two small, but important bugfixes:
	=> Outgoing packets that were not m_tagged with ND_PACKET_OUTGOING
	tag were generating EOPNOTSUPP before the packet managed to reach the
	if_output() because of the return EOPNOTSUPP was placed on the wrong
	place.	
	=> Incoming packets, other then ND/SeND packets, in icmp6_input()
	did not reach icmp6_rip6_input() because of wrong if condition.

Affected files ...

.. //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#29 edit
.. //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6.c#21 edit
.. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#32 edit

Differences ...

==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#29 (text+ko) ====

@@ -941,8 +941,7 @@
 	}
 
 	/* deliver the packet to appropriate sockets */
-	if (send_input_hook == NULL)
-		icmp6_rip6_input(&m, *offp);
+	icmp6_rip6_input(&m, *offp);
 
 	return IPPROTO_DONE;
 

==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6.c#21 (text+ko) ====

@@ -1903,10 +1903,8 @@
 			skip = 1;
 			nd_type = (unsigned short *)(mtag + 1);
 			send_input_hook(m, ifp, SND_OUT, ip6len);
-		} else
-			error = EOPNOTSUPP;
-
-		return error;
+			return error;
+		}
 	}
 
 	/*

==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#32 (text+ko) ====

@@ -55,7 +55,6 @@
 	struct sockaddr_in6 dst;
 	struct icmp6_hdr *icmp6;
 	int icmp6len; 
-	int offp;
 
 	/* 
 	 * Receive incoming (SEND-protected) or outgoing traffic  
@@ -113,9 +112,6 @@
 			return (ENOSYS);
 		}
 
-		offp = sizeof (struct ip6_hdr);
-		icmp6_rip6_input(&m, offp);	
-
 		/*
 		 * No error returned from nd6_??_input() so the only thing
 		 * we can do is to pretend that it worked.



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