diff options
author | KOVACS Krisztian <hidden@sch.bme.hu> | 2008-10-01 10:41:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-10-01 10:41:00 -0400 |
commit | 88ef4a5a78e63420dd1dd770f1bd1dc198926b04 (patch) | |
tree | 42409d6d26fb6f954c501ac156d34265437d18f9 /include/net/ip.h | |
parent | 79876874ce20d37ecdc7f481ebf142466999152f (diff) |
tcp: Handle TCP SYN+ACK/ACK/RST transparency
The TCP stack sends out SYN+ACK/ACK/RST reply packets in response to
incoming packets. The non-local source address check on output bites
us again, as replies for transparently redirected traffic won't have a
chance to leave the node.
This patch selectively sets the FLOWI_FLAG_ANYSRC flag when doing the
route lookup for those replies. Transparent replies are enabled if the
listening socket has the transparent socket flag set.
Signed-off-by: KOVACS Krisztian <hidden@sch.bme.hu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ip.h')
-rw-r--r-- | include/net/ip.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/ip.h b/include/net/ip.h index 250e6ef025a4..90b27f634b76 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -140,12 +140,15 @@ static inline void ip_tr_mc_map(__be32 addr, char *buf) | |||
140 | 140 | ||
141 | struct ip_reply_arg { | 141 | struct ip_reply_arg { |
142 | struct kvec iov[1]; | 142 | struct kvec iov[1]; |
143 | int flags; | ||
143 | __wsum csum; | 144 | __wsum csum; |
144 | int csumoffset; /* u16 offset of csum in iov[0].iov_base */ | 145 | int csumoffset; /* u16 offset of csum in iov[0].iov_base */ |
145 | /* -1 if not needed */ | 146 | /* -1 if not needed */ |
146 | int bound_dev_if; | 147 | int bound_dev_if; |
147 | }; | 148 | }; |
148 | 149 | ||
150 | #define IP_REPLY_ARG_NOSRCCHECK 1 | ||
151 | |||
149 | void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg, | 152 | void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg, |
150 | unsigned int len); | 153 | unsigned int len); |
151 | 154 | ||