diff options
author | Patrick McHardy | 2007-12-05 10:22:05 +0100 |
---|---|---|
committer | David S. Miller | 2008-01-28 23:56:05 +0100 |
commit | 1841a4c7ae106b7a3e2521db55f4d8bb8a0988d5 (patch) | |
tree | 50c64a8b67e9f2f768560f32792ea740042b3f08 /net/ipv6 | |
parent | [NETFILTER]: xt_hashlimit: remove ip6tables module dependency (diff) | |
download | kernel-qcow2-linux-1841a4c7ae106b7a3e2521db55f4d8bb8a0988d5.tar.gz kernel-qcow2-linux-1841a4c7ae106b7a3e2521db55f4d8bb8a0988d5.tar.xz kernel-qcow2-linux-1841a4c7ae106b7a3e2521db55f4d8bb8a0988d5.zip |
[NETFILTER]: nf_ct_h323: remove ipv6 module dependency
nf_conntrack_h323 needs ip6_route_output for the call forwarding filter.
Add a ->route function to nf_afinfo and use that to avoid pulling in the
ipv6 module.
Fix the #ifdef for the IPv6 code while I'm at it - the IPv6 support is
only needed when IPv6 conntrack is enabled.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/netfilter.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/ipv6/netfilter.c b/net/ipv6/netfilter.c index 175e19f80253..281f732e3c97 100644 --- a/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c @@ -81,6 +81,12 @@ static int nf_ip6_reroute(struct sk_buff *skb, const struct nf_info *info) return 0; } +static int nf_ip6_route(struct dst_entry **dst, struct flowi *fl) +{ + *dst = ip6_route_output(NULL, fl); + return (*dst)->error; +} + __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, unsigned int dataoff, u_int8_t protocol) { @@ -118,6 +124,7 @@ EXPORT_SYMBOL(nf_ip6_checksum); static struct nf_afinfo nf_ip6_afinfo = { .family = AF_INET6, .checksum = nf_ip6_checksum, + .route = nf_ip6_route, .saveroute = nf_ip6_saveroute, .reroute = nf_ip6_reroute, .route_key_size = sizeof(struct ip6_rt_info), |