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>
This commit is contained in:
committed by
David S. Miller
parent
79876874ce
commit
88ef4a5a78
@@ -140,12 +140,15 @@ static inline void ip_tr_mc_map(__be32 addr, char *buf)
|
||||
|
||||
struct ip_reply_arg {
|
||||
struct kvec iov[1];
|
||||
int flags;
|
||||
__wsum csum;
|
||||
int csumoffset; /* u16 offset of csum in iov[0].iov_base */
|
||||
/* -1 if not needed */
|
||||
int bound_dev_if;
|
||||
};
|
||||
|
||||
#define IP_REPLY_ARG_NOSRCCHECK 1
|
||||
|
||||
void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg,
|
||||
unsigned int len);
|
||||
|
||||
|
Reference in New Issue
Block a user