netfilter: ipv6: add getsockopt to retrieve origdst
authorFlorian Westphal <fw@strlen.de>
Tue, 30 Oct 2012 01:08:49 +0000 (01:08 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 2 Nov 2012 11:26:32 +0000 (12:26 +0100)
commit121d1e0941e05c64ee4223064dd83eb24e871739
treea5b841774451210d2d53db14b7cd907cd47f12d4
parent6229b75d8da5a4eed7bb668de757e252986c2305
netfilter: ipv6: add getsockopt to retrieve origdst

userspace can query the original ipv4 destination address of a REDIRECTed
connection via
getsockopt(m_sock, SOL_IP, SO_ORIGINAL_DST, &m_server_addr, &addrsize)

but for ipv6 no such option existed.

This adds getsockopt(..., IPPROTO_IPV6, IP6T_SO_ORIGINAL_DST, ...).

Without this, userspace needs to parse /proc or use ctnetlink, which
appears to be overkill.

This uses option number 80 for IP6T_SO_ORIGINAL_DST, which is spare,
to use the same number we use in the IPv4 socket option SO_ORIGINAL_DST.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/uapi/linux/in6.h
include/uapi/linux/netfilter_ipv6/ip6_tables.h
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c