svn commit: r203793 - user/kmacy/head_flowtable_v6/sys/net

Kip Macy kmacy at FreeBSD.org
Fri Feb 12 00:45:29 UTC 2010


Author: kmacy
Date: Fri Feb 12 00:45:29 2010
New Revision: 203793
URL: http://svn.freebsd.org/changeset/base/203793

Log:
  add assert of family type

Modified:
  user/kmacy/head_flowtable_v6/sys/net/flowtable.c
  user/kmacy/head_flowtable_v6/sys/net/flowtable.h

Modified: user/kmacy/head_flowtable_v6/sys/net/flowtable.c
==============================================================================
--- user/kmacy/head_flowtable_v6/sys/net/flowtable.c	Fri Feb 12 00:07:56 2010	(r203792)
+++ user/kmacy/head_flowtable_v6/sys/net/flowtable.c	Fri Feb 12 00:45:29 2010	(r203793)
@@ -1023,15 +1023,16 @@ flowtable_lookup(struct flowtable *ft, s
 
 	sro.ro_rt = sro6.ro_rt = NULL;
 	sro.ro_lle = sro6.ro_lle = NULL;
-	ro = &sro;
+	ro = NULL;
 	hash = 0;
 	flags |= ft->ft_flags;
 	proto = flags_to_proto(flags);
 #ifdef INET
 	if (ssa->ss_family == AF_INET) {
 		struct sockaddr_in *ssin, *dsin;
-		memcpy(&ro->ro_dst, &dsa, sizeof(struct sockaddr_in));
 
+		ro = &sro;
+		memcpy(&ro->ro_dst, &dsa, sizeof(struct sockaddr_in));
 		dsin = (struct sockaddr_in *)dsa;
 		ssin = (struct sockaddr_in *)ssa;
 		if ((ntohl(dsin->sin_addr.s_addr) >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET ||
@@ -1046,7 +1047,7 @@ flowtable_lookup(struct flowtable *ft, s
 		struct sockaddr_in6 *ssin6, *dsin6;
 
 		ro = (struct route *)&sro6;
-		memcpy(&ro->ro_dst, &dsa,
+		memcpy(&sro6.ro_dst, &dsa,
 		    sizeof(struct sockaddr_in6));
 		dsin6 = (struct sockaddr_in6 *)dsa;
 		ssin6 = (struct sockaddr_in6 *)ssa;
@@ -1107,6 +1108,10 @@ uncached:
 	 * receive the route locked
 	 */
 
+	if ((ro->ro_dst.sa_family != AF_INET) &&
+	    (ro->ro_dst.sa_family != AF_INET6))
+		panic("sa_family == %d\n", ro->ro_dst.sa_family);
+	    
 	ft->ft_rtalloc(ro, hash, fibnum);
 	if (ro->ro_rt == NULL) 
 		error = ENETUNREACH;

Modified: user/kmacy/head_flowtable_v6/sys/net/flowtable.h
==============================================================================
--- user/kmacy/head_flowtable_v6/sys/net/flowtable.h	Fri Feb 12 00:07:56 2010	(r203792)
+++ user/kmacy/head_flowtable_v6/sys/net/flowtable.h	Fri Feb 12 00:45:29 2010	(r203793)
@@ -46,6 +46,8 @@ $FreeBSD$
 
 struct flowtable;
 struct flentry;
+struct route;
+struct route_in6;
 
 VNET_DECLARE(struct flowtable *, ip_ft);
 #define	V_ip_ft			VNET(ip_ft)


More information about the svn-src-user mailing list