aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-12-05 02:51:48 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:56:04 -0500
commit193b23c5a0b270f045a4e77545e9020bfe73d5c4 (patch)
treebbd247ed6e98b0a0e59ffd8d5a7ba8bc27402641
parent17dfc93f6d7e5792c9c36dd70c8612721a091ae8 (diff)
[NETFILTER]: xt_hashlimit: remove ip6tables module dependency
Switch from ipv6_find_hdr to ipv6_skip_exthdr to avoid pulling in ip6_tables and ipv6 when only using it for IPv4. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/netfilter/xt_hashlimit.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
index 49a9e691dc18..951d4c829674 100644
--- a/net/netfilter/xt_hashlimit.c
+++ b/net/netfilter/xt_hashlimit.c
@@ -21,6 +21,7 @@
21#include <linux/in.h> 21#include <linux/in.h>
22#include <linux/ip.h> 22#include <linux/ip.h>
23#include <linux/ipv6.h> 23#include <linux/ipv6.h>
24#include <net/ipv6.h>
24#include <net/net_namespace.h> 25#include <net/net_namespace.h>
25 26
26#include <linux/netfilter/x_tables.h> 27#include <linux/netfilter/x_tables.h>
@@ -379,7 +380,7 @@ hashlimit_init_dst(const struct xt_hashlimit_htable *hinfo,
379 const struct sk_buff *skb, unsigned int protoff) 380 const struct sk_buff *skb, unsigned int protoff)
380{ 381{
381 __be16 _ports[2], *ports; 382 __be16 _ports[2], *ports;
382 int nexthdr; 383 u8 nexthdr;
383 384
384 memset(dst, 0, sizeof(*dst)); 385 memset(dst, 0, sizeof(*dst));
385 386
@@ -407,8 +408,9 @@ hashlimit_init_dst(const struct xt_hashlimit_htable *hinfo,
407 if (!(hinfo->cfg.mode & 408 if (!(hinfo->cfg.mode &
408 (XT_HASHLIMIT_HASH_DPT | XT_HASHLIMIT_HASH_SPT))) 409 (XT_HASHLIMIT_HASH_DPT | XT_HASHLIMIT_HASH_SPT)))
409 return 0; 410 return 0;
410 nexthdr = ipv6_find_hdr(skb, &protoff, -1, NULL); 411 nexthdr = ipv6_hdr(skb)->nexthdr;
411 if (nexthdr < 0) 412 protoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr);
413 if ((int)protoff < 0)
412 return -1; 414 return -1;
413 break; 415 break;
414#endif 416#endif