summaryrefslogtreecommitdiffstats
path: root/net/ipv4/netfilter
diff options
context:
space:
mode:
authorGeorge Hansper2006-09-20 21:03:23 +0200
committerDavid S. Miller2006-09-23 00:19:57 +0200
commitc1fe3ca5106d9568791433fa6c7f27e71ac69e1b (patch)
treee3a00c265b70caadc7a6b8a17aa82491e354e31e /net/ipv4/netfilter
parent[NETFILTER]: xt_policy: remove dups in .family (diff)
downloadkernel-qcow2-linux-c1fe3ca5106d9568791433fa6c7f27e71ac69e1b.tar.gz
kernel-qcow2-linux-c1fe3ca5106d9568791433fa6c7f27e71ac69e1b.tar.xz
kernel-qcow2-linux-c1fe3ca5106d9568791433fa6c7f27e71ac69e1b.zip
[NETFILTER]: TCP conntrack: improve dead connection detection
Don't count window updates as retransmissions. Signed-off-by: George Hansper <georgeh@anstat.com.au> Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/ipv4/netfilter')
-rw-r--r--net/ipv4/netfilter/ip_conntrack_proto_tcp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
index 75a7237eb8c1..03ae9a04cb37 100644
--- a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
+++ b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c
@@ -731,13 +731,15 @@ static int tcp_in_window(struct ip_ct_tcp *state,
if (state->last_dir == dir
&& state->last_seq == seq
&& state->last_ack == ack
- && state->last_end == end)
+ && state->last_end == end
+ && state->last_win == win)
state->retrans++;
else {
state->last_dir = dir;
state->last_seq = seq;
state->last_ack = ack;
state->last_end = end;
+ state->last_win = win;
state->retrans = 0;
}
}