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