diff options
Diffstat (limited to 'net/ipv4/netfilter/ipt_NETMAP.c')
-rw-r--r-- | net/ipv4/netfilter/ipt_NETMAP.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/net/ipv4/netfilter/ipt_NETMAP.c b/net/ipv4/netfilter/ipt_NETMAP.c index d03f165722d..068c69bce30 100644 --- a/net/ipv4/netfilter/ipt_NETMAP.c +++ b/net/ipv4/netfilter/ipt_NETMAP.c | |||
@@ -16,11 +16,7 @@ | |||
16 | #include <linux/netfilter.h> | 16 | #include <linux/netfilter.h> |
17 | #include <linux/netfilter_ipv4.h> | 17 | #include <linux/netfilter_ipv4.h> |
18 | #include <linux/netfilter/x_tables.h> | 18 | #include <linux/netfilter/x_tables.h> |
19 | #ifdef CONFIG_NF_NAT_NEEDED | ||
20 | #include <net/netfilter/nf_nat_rule.h> | 19 | #include <net/netfilter/nf_nat_rule.h> |
21 | #else | ||
22 | #include <linux/netfilter_ipv4/ip_nat_rule.h> | ||
23 | #endif | ||
24 | 20 | ||
25 | #define MODULENAME "NETMAP" | 21 | #define MODULENAME "NETMAP" |
26 | MODULE_LICENSE("GPL"); | 22 | MODULE_LICENSE("GPL"); |
@@ -40,7 +36,7 @@ check(const char *tablename, | |||
40 | void *targinfo, | 36 | void *targinfo, |
41 | unsigned int hook_mask) | 37 | unsigned int hook_mask) |
42 | { | 38 | { |
43 | const struct ip_nat_multi_range_compat *mr = targinfo; | 39 | const struct nf_nat_multi_range_compat *mr = targinfo; |
44 | 40 | ||
45 | if (!(mr->range[0].flags & IP_NAT_RANGE_MAP_IPS)) { | 41 | if (!(mr->range[0].flags & IP_NAT_RANGE_MAP_IPS)) { |
46 | DEBUGP(MODULENAME":check: bad MAP_IPS.\n"); | 42 | DEBUGP(MODULENAME":check: bad MAP_IPS.\n"); |
@@ -61,16 +57,16 @@ target(struct sk_buff **pskb, | |||
61 | const struct xt_target *target, | 57 | const struct xt_target *target, |
62 | const void *targinfo) | 58 | const void *targinfo) |
63 | { | 59 | { |
64 | struct ip_conntrack *ct; | 60 | struct nf_conn *ct; |
65 | enum ip_conntrack_info ctinfo; | 61 | enum ip_conntrack_info ctinfo; |
66 | __be32 new_ip, netmask; | 62 | __be32 new_ip, netmask; |
67 | const struct ip_nat_multi_range_compat *mr = targinfo; | 63 | const struct nf_nat_multi_range_compat *mr = targinfo; |
68 | struct ip_nat_range newrange; | 64 | struct nf_nat_range newrange; |
69 | 65 | ||
70 | IP_NF_ASSERT(hooknum == NF_IP_PRE_ROUTING | 66 | NF_CT_ASSERT(hooknum == NF_IP_PRE_ROUTING |
71 | || hooknum == NF_IP_POST_ROUTING | 67 | || hooknum == NF_IP_POST_ROUTING |
72 | || hooknum == NF_IP_LOCAL_OUT); | 68 | || hooknum == NF_IP_LOCAL_OUT); |
73 | ct = ip_conntrack_get(*pskb, &ctinfo); | 69 | ct = nf_ct_get(*pskb, &ctinfo); |
74 | 70 | ||
75 | netmask = ~(mr->range[0].min_ip ^ mr->range[0].max_ip); | 71 | netmask = ~(mr->range[0].min_ip ^ mr->range[0].max_ip); |
76 | 72 | ||
@@ -80,20 +76,20 @@ target(struct sk_buff **pskb, | |||
80 | new_ip = ip_hdr(*pskb)->saddr & ~netmask; | 76 | new_ip = ip_hdr(*pskb)->saddr & ~netmask; |
81 | new_ip |= mr->range[0].min_ip & netmask; | 77 | new_ip |= mr->range[0].min_ip & netmask; |
82 | 78 | ||
83 | newrange = ((struct ip_nat_range) | 79 | newrange = ((struct nf_nat_range) |
84 | { mr->range[0].flags | IP_NAT_RANGE_MAP_IPS, | 80 | { mr->range[0].flags | IP_NAT_RANGE_MAP_IPS, |
85 | new_ip, new_ip, | 81 | new_ip, new_ip, |
86 | mr->range[0].min, mr->range[0].max }); | 82 | mr->range[0].min, mr->range[0].max }); |
87 | 83 | ||
88 | /* Hand modified range to generic setup. */ | 84 | /* Hand modified range to generic setup. */ |
89 | return ip_nat_setup_info(ct, &newrange, hooknum); | 85 | return nf_nat_setup_info(ct, &newrange, hooknum); |
90 | } | 86 | } |
91 | 87 | ||
92 | static struct xt_target target_module = { | 88 | static struct xt_target target_module = { |
93 | .name = MODULENAME, | 89 | .name = MODULENAME, |
94 | .family = AF_INET, | 90 | .family = AF_INET, |
95 | .target = target, | 91 | .target = target, |
96 | .targetsize = sizeof(struct ip_nat_multi_range_compat), | 92 | .targetsize = sizeof(struct nf_nat_multi_range_compat), |
97 | .table = "nat", | 93 | .table = "nat", |
98 | .hooks = (1 << NF_IP_PRE_ROUTING) | (1 << NF_IP_POST_ROUTING) | | 94 | .hooks = (1 << NF_IP_PRE_ROUTING) | (1 << NF_IP_POST_ROUTING) | |
99 | (1 << NF_IP_LOCAL_OUT), | 95 | (1 << NF_IP_LOCAL_OUT), |