PERFORCE change 136919 for review

Paolo Pisati piso at FreeBSD.org
Wed Mar 5 16:15:31 UTC 2008


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

Change 136919 by piso at piso_ferret on 2008/03/05 16:15:09

	Don't pass down the entire packet: AddSeq.

Affected files ...

.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#29 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_ftp.c#22 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_irc.c#24 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#30 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#26 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_smedia.c#22 edit

Differences ...

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

@@ -2085,7 +2085,8 @@
 
 // XXX ip free
 void
-AddSeq(struct ip *pip, struct alias_link *lnk, int delta)
+AddSeq(struct alias_link *lnk, int delta, u_int ip_hl, u_short ip_len, 
+    u_long th_seq, u_int th_off)
 {
 /*
 When a TCP packet has been altered in length, save this
@@ -2093,19 +2094,16 @@
 been altered, then this list will begin to overwrite itself.
 */
 
-	struct tcphdr *tc;
 	struct ack_data_record x;
 	int hlen, tlen, dlen;
 	int i;
 
-	tc = ip_next(pip);
-
-	hlen = (pip->ip_hl + tc->th_off) << 2;
-	tlen = ntohs(pip->ip_len);
+	hlen = (ip_hl + th_off) << 2;
+	tlen = ntohs(ip_len);
 	dlen = tlen - hlen;
 
-	x.ack_old = htonl(ntohl(tc->th_seq) + dlen);
-	x.ack_new = htonl(ntohl(tc->th_seq) + dlen + delta);
+	x.ack_old = htonl(ntohl(th_seq) + dlen);
+	x.ack_new = htonl(ntohl(th_seq) + dlen + delta);
 	x.delta = delta;
 	x.active = 1;
 

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

@@ -736,7 +736,8 @@
 			SetAckModified(lnk);
 			tc = (struct tcphdr *)ip_next(pip);				
 			delta = GetDeltaSeqOut(tc->th_seq, lnk);
-			AddSeq(pip, lnk, delta + slen - dlen);
+			AddSeq(lnk, delta + slen - dlen, pip->ip_hl, 
+			    pip->ip_len, tc->th_seq, tc->th_off);
 		}
 
 /* Revise IP header */

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

@@ -434,7 +434,8 @@
 			SetAckModified(lnk);
 			tc = (struct tcphdr *)ip_next(pip);				
 			delta = GetDeltaSeqOut(tc->th_seq, lnk);
-			AddSeq(pip, lnk, delta + copyat + iCopy - dlen);
+			AddSeq(lnk, delta + copyat + iCopy - dlen, pip->ip_hl,
+			    pip->ip_len, tc->th_seq, tc->th_off);
 		}
 
 		/* Revise IP header */

==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#30 (text+ko) ====

@@ -300,7 +300,8 @@
 int		GetAckModified(struct alias_link *_lnk);
 int		GetDeltaAckIn(u_long, struct alias_link *_lnk);
 int             GetDeltaSeqOut(u_long, struct alias_link *lnk);
-void		AddSeq    (struct ip *_pip, struct alias_link *_lnk, int _delta);
+void            AddSeq(struct alias_link *lnk, int delta, u_int ip_hl, 
+		    u_short ip_len, u_long th_seq, u_int th_off);
 void		SetExpire (struct alias_link *_lnk, int _expire);
 void		ClearCheckNewLink(struct libalias *la);
 void		SetProtocolFlags(struct alias_link *_lnk, int _pflags);

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

@@ -455,7 +455,8 @@
 		SetAckModified(lnk);
 		tc = (struct tcphdr *)ip_next(pip);			
 		delta = GetDeltaSeqOut(tc->th_seq, lnk);
-		AddSeq(pip, lnk, delta + slen);
+		AddSeq(lnk, delta + slen, pip->ip_hl, pip->ip_len, tc->th_seq,
+		    tc->th_off);
 	}
 
 /* Update IP header packet length and checksum */

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

@@ -406,7 +406,8 @@
 	SetAckModified(lnk);
 	tc = (struct tcphdr *)ip_next(pip);
 	delta = GetDeltaSeqOut(tc->th_seq, lnk);
-	AddSeq(pip, lnk, delta + new_dlen - dlen);
+	AddSeq(lnk, delta + new_dlen - dlen, pip->ip_hl, pip->ip_len, 
+	    tc->th_seq, tc->th_off);
 
 	new_len = htons(hlen + new_dlen);
 	DifferentialChecksum(&pip->ip_sum,


More information about the p4-projects mailing list