PERFORCE change 113686 for review

Paolo Pisati piso at FreeBSD.org
Tue Jan 30 01:32:53 UTC 2007


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

Change 113686 by piso at piso_newluxor on 2007/01/30 01:32:35

	Remove another usage of ip_next(): pass down tcp offset and seq number, and
	axe ip_next() from AddSeq().

Affected files ...

.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_db.c#21 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_ftp.c#15 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_irc.c#16 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#16 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#17 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_smedia.c#16 edit

Differences ...

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

@@ -2085,7 +2085,8 @@
 
 
 void
-AddSeq(struct ip *pip, struct alias_link *lnk, int delta)
+AddSeq(struct ip *pip, struct alias_link *lnk, int delta, u_int th_off, 
+    u_int th_seq)
 {
 /*
 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;
+	hlen = (pip->ip_hl + th_off) << 2;
 	tlen = ntohs(pip->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#15 (text+ko) ====

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

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

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

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

@@ -300,7 +300,8 @@
 int		GetAckModified(struct alias_link *_lnk);
 int		GetDeltaAckIn(struct alias_link *_lnk, u_long ack);
 int		GetDeltaSeqOut(struct alias_link *_lnk, u_long seq);
-void		AddSeq    (struct ip *_pip, struct alias_link *_lnk, int _delta);
+void		AddSeq    (struct ip *_pip, struct alias_link *_lnk, int _delta, 
+		    u_int th_off, u_int th_seq);
 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#17 (text+ko) ====

@@ -454,7 +454,7 @@
 
 		SetAckModified(lnk);
 		delta = GetDeltaSeqOut(lnk, tc->th_seq);
-		AddSeq(pip, lnk, delta + slen);
+		AddSeq(pip, lnk, delta + slen, tc->th_off, tc->th_seq);
 	}
 
 /* Update IP header packet length and checksum */

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

@@ -405,7 +405,7 @@
 
 	SetAckModified(lnk);
 	delta = GetDeltaSeqOut(lnk, tc->th_seq);
-	AddSeq(pip, lnk, delta + new_dlen - dlen);
+	AddSeq(pip, lnk, delta + new_dlen - dlen, tc->th_off, tc->th_seq);
 
 	new_len = htons(hlen + new_dlen);
 	DifferentialChecksum(&pip->ip_sum,


More information about the p4-projects mailing list