diff options
author | Vlad Drukker <vlad@storewiz.com> | 2005-11-12 15:13:14 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-11-12 15:13:14 -0500 |
commit | a2d7222f0f5861ce13b9308c30bd18f28ebeb583 (patch) | |
tree | 09d4dafe35b9cd4de344c4a8a63ef7d922466c2a /net | |
parent | efacfbcb6c88677809f44a574fbcd9824835dccb (diff) |
[NETFILTER] {ip,nf}_conntrack TCP: Accept SYN+PUSH like SYN
Some devices (e.g. Qlogic iSCSI HBA hardware like QLA4010 up to firmware
3.0.0.4) initiates TCP with SYN and PUSH flags set.
The Linux TCP/IP stack deals fine with that, but the connection tracking
code doesn't.
This patch alters TCP connection tracking to accept SYN+PUSH as a valid
flag combination.
Signed-off-by: Vlad Drukker <vlad@storewiz.com>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/netfilter/ip_conntrack_proto_tcp.c | 1 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_proto_tcp.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c index 468c6003b4c7..5b3f5220f289 100644 --- a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c +++ b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c | |||
@@ -814,6 +814,7 @@ static u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG) + 1] = | |||
814 | { | 814 | { |
815 | [TH_SYN] = 1, | 815 | [TH_SYN] = 1, |
816 | [TH_SYN|TH_ACK] = 1, | 816 | [TH_SYN|TH_ACK] = 1, |
817 | [TH_SYN|TH_PUSH] = 1, | ||
817 | [TH_SYN|TH_ACK|TH_PUSH] = 1, | 818 | [TH_SYN|TH_ACK|TH_PUSH] = 1, |
818 | [TH_RST] = 1, | 819 | [TH_RST] = 1, |
819 | [TH_RST|TH_ACK] = 1, | 820 | [TH_RST|TH_ACK] = 1, |
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c index 83d90dd624f0..156680ddb042 100644 --- a/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c | |||
@@ -779,6 +779,7 @@ static u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG) + 1] = | |||
779 | { | 779 | { |
780 | [TH_SYN] = 1, | 780 | [TH_SYN] = 1, |
781 | [TH_SYN|TH_ACK] = 1, | 781 | [TH_SYN|TH_ACK] = 1, |
782 | [TH_SYN|TH_PUSH] = 1, | ||
782 | [TH_SYN|TH_ACK|TH_PUSH] = 1, | 783 | [TH_SYN|TH_ACK|TH_PUSH] = 1, |
783 | [TH_RST] = 1, | 784 | [TH_RST] = 1, |
784 | [TH_RST|TH_ACK] = 1, | 785 | [TH_RST|TH_ACK] = 1, |