Skip to content
  • Máté Eckl's avatar
    netfilter: Decrease code duplication regarding transparent socket option · 8d6e5557
    Máté Eckl authored
    
    
    There is a function in include/net/netfilter/nf_socket.h to decide if a
    socket has IP(V6)_TRANSPARENT socket option set or not. However this
    does the same as inet_sk_transparent() in include/net/tcp.h
    
    include/net/tcp.h:1733
    /* This helper checks if socket has IP_TRANSPARENT set */
    static inline bool inet_sk_transparent(const struct sock *sk)
    {
    	switch (sk->sk_state) {
    	case TCP_TIME_WAIT:
    		return inet_twsk(sk)->tw_transparent;
    	case TCP_NEW_SYN_RECV:
    		return inet_rsk(inet_reqsk(sk))->no_srccheck;
    	}
    	return inet_sk(sk)->transparent;
    }
    
    tproxy_sk_is_transparent has also been refactored to use this function
    instead of reimplementing it.
    
    Signed-off-by: default avatarMáté Eckl <ecklm94@gmail.com>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    8d6e5557