PERFORCE change 137323 for review

Paolo Pisati piso at FreeBSD.org
Mon Mar 10 16:11:28 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=137323

Change 137323 by piso at piso_ferret on 2008/03/10 16:10:28

	-Don't pass the entire pkt to FragmentIn() & FragmentOut()
	-Remove some stale comments

Affected files ...

.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#67 edit

Differences ...

==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#67 (text+ko) ====

@@ -642,8 +642,6 @@
 	return (iresult);
 }
 
-
-// XXX ip free
 static int
 ProtoAliasIn(struct libalias *la, struct in_addr ip_src, 
     struct in_addr *ip_dst, u_char ip_p, u_short *ip_sum)
@@ -677,7 +675,6 @@
 	return (PKT_ALIAS_IGNORED);
 }
 
-// XXX ip free
 static int
 ProtoAliasOut(struct libalias *la, struct in_addr *ip_src, 
     struct in_addr ip_dst, u_char ip_p, u_short *ip_sum, int create)
@@ -1094,41 +1091,42 @@
 */
 
 /* Local prototypes */
-static int	FragmentIn(struct libalias *, struct ip *);
-static int	FragmentOut(struct libalias *, struct ip *);
+static int	FragmentIn(struct libalias *la, struct in_addr ip_src, 
+		    struct in_addr *ip_dst, u_char ip_p, u_short *ip_sum);		    
+static int	FragmentOut(struct libalias *, struct in_addr *ip_src, 
+		    u_short *ip_sum);
 
-// XXX ip free
 static int
-FragmentIn(struct libalias *la, struct ip *pip)
+FragmentIn(struct libalias *la, struct in_addr ip_src, struct in_addr *ip_dst,
+    u_char ip_id, u_short *ip_sum)
 {
 	struct alias_link *lnk;
 
 	LIBALIAS_LOCK_ASSERT(la);
-	lnk = FindFragmentIn2(la, pip->ip_src, pip->ip_dst, pip->ip_id);
+	lnk = FindFragmentIn2(la, ip_src, *ip_dst, ip_id);
 	if (lnk != NULL) {
 		struct in_addr original_address;
 
 		GetFragmentAddr(lnk, &original_address);
-		DifferentialChecksum(&pip->ip_sum,
-		    &original_address, &pip->ip_dst, 2);
-		pip->ip_dst = original_address;
+		DifferentialChecksum(ip_sum,
+		    &original_address, ip_dst, 2);
+		*ip_dst = original_address;
 
 		return (PKT_ALIAS_OK);
 	}
 	return (PKT_ALIAS_UNRESOLVED_FRAGMENT);
 }
 
-// XXX ip free
 static int
-FragmentOut(struct libalias *la, struct ip *pip)
+FragmentOut(struct libalias *la, struct in_addr *ip_src, u_short *ip_sum)
 {
 	struct in_addr alias_address;
 
 	LIBALIAS_LOCK_ASSERT(la);
-	alias_address = FindAliasAddress(la, pip->ip_src);
-	DifferentialChecksum(&pip->ip_sum,
-	    &alias_address, &pip->ip_src, 2);
-	pip->ip_src = alias_address;
+	alias_address = FindAliasAddress(la, *ip_src);
+	DifferentialChecksum(ip_sum,
+	    &alias_address, ip_src, 2);
+	*ip_src = alias_address;
 
 	return (PKT_ALIAS_OK);
 }
@@ -1310,7 +1308,8 @@
 			}
 		}
 	} else {
-		iresult = FragmentIn(la, pip);
+		iresult = FragmentIn(la, pip->ip_src, &pip->ip_dst, pip->ip_id,
+		    &pip->ip_sum);
 	}
 
 getout:
@@ -1441,7 +1440,7 @@
 			break;
 		}
 	} else {
-		iresult = FragmentOut(la, pip);
+		iresult = FragmentOut(la, &pip->ip_src, &pip->ip_sum);
 	}
 
 	SetDefaultAliasAddress(la, addr_save);


More information about the p4-projects mailing list