Commit d485d500 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

netfilter: tproxy: nf_tproxy_assign_sock() can handle tw sockets

transparent field of a socket is either inet_twsk(sk)->tw_transparent
for timewait sockets, or inet_sk(sk)->transparent for other sockets
(TCP/UDP).
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3d13008e
...@@ -70,7 +70,11 @@ nf_tproxy_destructor(struct sk_buff *skb) ...@@ -70,7 +70,11 @@ nf_tproxy_destructor(struct sk_buff *skb)
int int
nf_tproxy_assign_sock(struct sk_buff *skb, struct sock *sk) nf_tproxy_assign_sock(struct sk_buff *skb, struct sock *sk)
{ {
if (inet_sk(sk)->transparent) { bool transparent = (sk->sk_state == TCP_TIME_WAIT) ?
inet_twsk(sk)->tw_transparent :
inet_sk(sk)->transparent;
if (transparent) {
skb_orphan(skb); skb_orphan(skb);
skb->sk = sk; skb->sk = sk;
skb->destructor = nf_tproxy_destructor; skb->destructor = nf_tproxy_destructor;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment