PERFORCE change 174594 for review

Ana Kukec anchie at FreeBSD.org
Thu Feb 11 18:01:51 UTC 2010


http://p4web.freebsd.org/chv.cgi?CH=174594

Change 174594 by anchie at 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.


More information about the p4-projects mailing list