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: Eric Dumazet <eric.dumazet@gmail.com> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3d13008e73
commit
d485d500cf
|
@ -70,7 +70,11 @@ nf_tproxy_destructor(struct sk_buff *skb)
|
|||
int
|
||||
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->sk = sk;
|
||||
skb->destructor = nf_tproxy_destructor;
|
||||
|
|
Loading…
Reference in New Issue