Skip to content

Commit

Permalink
[NETFILTER]: {ip,ip6}_tables: remove x_tables wrapper functions
Browse files Browse the repository at this point in the history
Use the x_tables functions directly to make it better visible which
parts are shared between ip_tables and ip6_tables.

Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jan Engelhardt authored and David S. Miller committed Feb 8, 2007
1 parent e1fd058 commit 6709dbb
Show file tree
Hide file tree
Showing 36 changed files with 202 additions and 171 deletions.
12 changes: 1 addition & 11 deletions include/linux/netfilter_ipv4/ip_tables.h
Original file line number Diff line number Diff line change
Expand Up @@ -272,16 +272,6 @@ ipt_get_target(struct ipt_entry *e)
#include <linux/init.h>
extern void ipt_init(void) __init;

#define ipt_register_target(tgt) \
({ (tgt)->family = AF_INET; \
xt_register_target(tgt); })
#define ipt_unregister_target(tgt) xt_unregister_target(tgt)

#define ipt_register_match(mtch) \
({ (mtch)->family = AF_INET; \
xt_register_match(mtch); })
#define ipt_unregister_match(mtch) xt_unregister_match(mtch)

//#define ipt_register_table(tbl, repl) xt_register_table(AF_INET, tbl, repl)
//#define ipt_unregister_table(tbl) xt_unregister_table(AF_INET, tbl)

Expand All @@ -290,7 +280,7 @@ extern int ipt_register_table(struct ipt_table *table,
extern void ipt_unregister_table(struct ipt_table *table);

/* net/sched/ipt.c: Gimme access to your targets! Gets target->me. */
extern struct ipt_target *ipt_find_target(const char *name, u8 revision);
extern struct xt_target *ipt_find_target(const char *name, u8 revision);

/* Standard entry. */
struct ipt_standard
Expand Down
10 changes: 0 additions & 10 deletions include/linux/netfilter_ipv6/ip6_tables.h
Original file line number Diff line number Diff line change
Expand Up @@ -286,16 +286,6 @@ ip6t_get_target(struct ip6t_entry *e)
#include <linux/init.h>
extern void ip6t_init(void) __init;

#define ip6t_register_target(tgt) \
({ (tgt)->family = AF_INET6; \
xt_register_target(tgt); })
#define ip6t_unregister_target(tgt) xt_unregister_target(tgt)

#define ip6t_register_match(match) \
({ (match)->family = AF_INET6; \
xt_register_match(match); })
#define ip6t_unregister_match(match) xt_unregister_match(match)

extern int ip6t_register_table(struct ip6t_table *table,
const struct ip6t_replace *repl);
extern void ip6t_unregister_table(struct ip6t_table *table);
Expand Down
26 changes: 14 additions & 12 deletions net/ipv4/netfilter/ip_nat_rule.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ static unsigned int ipt_snat_target(struct sk_buff **pskb,
const struct net_device *in,
const struct net_device *out,
unsigned int hooknum,
const struct ipt_target *target,
const struct xt_target *target,
const void *targinfo)
{
struct ip_conntrack *ct;
Expand Down Expand Up @@ -141,7 +141,7 @@ static unsigned int ipt_dnat_target(struct sk_buff **pskb,
const struct net_device *in,
const struct net_device *out,
unsigned int hooknum,
const struct ipt_target *target,
const struct xt_target *target,
const void *targinfo)
{
struct ip_conntrack *ct;
Expand All @@ -166,7 +166,7 @@ static unsigned int ipt_dnat_target(struct sk_buff **pskb,

static int ipt_snat_checkentry(const char *tablename,
const void *entry,
const struct ipt_target *target,
const struct xt_target *target,
void *targinfo,
unsigned int hook_mask)
{
Expand All @@ -182,7 +182,7 @@ static int ipt_snat_checkentry(const char *tablename,

static int ipt_dnat_checkentry(const char *tablename,
const void *entry,
const struct ipt_target *target,
const struct xt_target *target,
void *targinfo,
unsigned int hook_mask)
{
Expand Down Expand Up @@ -261,17 +261,19 @@ int ip_nat_rule_find(struct sk_buff **pskb,
return ret;
}

static struct ipt_target ipt_snat_reg = {
static struct xt_target ipt_snat_reg = {
.name = "SNAT",
.family = AF_INET,
.target = ipt_snat_target,
.targetsize = sizeof(struct ip_nat_multi_range_compat),
.table = "nat",
.hooks = 1 << NF_IP_POST_ROUTING,
.checkentry = ipt_snat_checkentry,
};

static struct ipt_target ipt_dnat_reg = {
static struct xt_target ipt_dnat_reg = {
.name = "DNAT",
.family = AF_INET,
.target = ipt_dnat_target,
.targetsize = sizeof(struct ip_nat_multi_range_compat),
.table = "nat",
Expand All @@ -286,27 +288,27 @@ int __init ip_nat_rule_init(void)
ret = ipt_register_table(&nat_table, &nat_initial_table.repl);
if (ret != 0)
return ret;
ret = ipt_register_target(&ipt_snat_reg);
ret = xt_register_target(&ipt_snat_reg);
if (ret != 0)
goto unregister_table;

ret = ipt_register_target(&ipt_dnat_reg);
ret = xt_register_target(&ipt_dnat_reg);
if (ret != 0)
goto unregister_snat;

return ret;

unregister_snat:
ipt_unregister_target(&ipt_snat_reg);
xt_unregister_target(&ipt_snat_reg);
unregister_table:
ipt_unregister_table(&nat_table);
xt_unregister_table(&nat_table);

return ret;
}

void ip_nat_rule_cleanup(void)
{
ipt_unregister_target(&ipt_dnat_reg);
ipt_unregister_target(&ipt_snat_reg);
xt_unregister_target(&ipt_dnat_reg);
xt_unregister_target(&ipt_snat_reg);
ipt_unregister_table(&nat_table);
}
20 changes: 10 additions & 10 deletions net/ipv4/netfilter/ip_tables.c
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ check_entry(struct ipt_entry *e, const char *name)
static inline int check_match(struct ipt_entry_match *m, const char *name,
const struct ipt_ip *ip, unsigned int hookmask)
{
struct ipt_match *match;
struct xt_match *match;
int ret;

match = m->u.kernel.match;
Expand All @@ -531,7 +531,7 @@ find_check_match(struct ipt_entry_match *m,
unsigned int hookmask,
unsigned int *i)
{
struct ipt_match *match;
struct xt_match *match;
int ret;

match = try_then_request_module(xt_find_match(AF_INET, m->u.user.name,
Expand All @@ -557,7 +557,7 @@ find_check_match(struct ipt_entry_match *m,
static inline int check_target(struct ipt_entry *e, const char *name)
{
struct ipt_entry_target *t;
struct ipt_target *target;
struct xt_target *target;
int ret;

t = ipt_get_target(e);
Expand All @@ -580,7 +580,7 @@ find_check_entry(struct ipt_entry *e, const char *name, unsigned int size,
unsigned int *i)
{
struct ipt_entry_target *t;
struct ipt_target *target;
struct xt_target *target;
int ret;
unsigned int j;

Expand Down Expand Up @@ -1437,7 +1437,7 @@ compat_check_calc_match(struct ipt_entry_match *m,
unsigned int hookmask,
int *size, int *i)
{
struct ipt_match *match;
struct xt_match *match;

match = try_then_request_module(xt_find_match(AF_INET, m->u.user.name,
m->u.user.revision),
Expand Down Expand Up @@ -1466,7 +1466,7 @@ check_compat_entry_size_and_hooks(struct ipt_entry *e,
const char *name)
{
struct ipt_entry_target *t;
struct ipt_target *target;
struct xt_target *target;
unsigned int entry_offset;
int ret, off, h, j;

Expand Down Expand Up @@ -1550,7 +1550,7 @@ static int compat_copy_entry_from_user(struct ipt_entry *e, void **dstptr,
struct xt_table_info *newinfo, unsigned char *base)
{
struct ipt_entry_target *t;
struct ipt_target *target;
struct xt_target *target;
struct ipt_entry *de;
unsigned int origsize;
int ret, h;
Expand Down Expand Up @@ -2124,7 +2124,7 @@ icmp_checkentry(const char *tablename,
}

/* The built-in targets: standard (NULL) and error. */
static struct ipt_target ipt_standard_target = {
static struct xt_target ipt_standard_target = {
.name = IPT_STANDARD_TARGET,
.targetsize = sizeof(int),
.family = AF_INET,
Expand All @@ -2135,7 +2135,7 @@ static struct ipt_target ipt_standard_target = {
#endif
};

static struct ipt_target ipt_error_target = {
static struct xt_target ipt_error_target = {
.name = IPT_ERROR_TARGET,
.target = ipt_error,
.targetsize = IPT_FUNCTION_MAXNAMELEN,
Expand All @@ -2158,7 +2158,7 @@ static struct nf_sockopt_ops ipt_sockopts = {
#endif
};

static struct ipt_match icmp_matchstruct = {
static struct xt_match icmp_matchstruct = {
.name = "icmp",
.match = icmp_match,
.matchsize = sizeof(struct ipt_icmp),
Expand Down
14 changes: 8 additions & 6 deletions net/ipv4/netfilter/ipt_CLUSTERIP.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#include <linux/netfilter_arp.h>

#include <linux/netfilter/x_tables.h>
#include <linux/netfilter_ipv4/ip_tables.h>
#include <linux/netfilter_ipv4/ipt_CLUSTERIP.h>
#include <net/netfilter/nf_conntrack_compat.h>
Expand Down Expand Up @@ -330,7 +331,7 @@ target(struct sk_buff **pskb,
if ((*pskb)->nh.iph->protocol == IPPROTO_ICMP
&& (ctinfo == IP_CT_RELATED
|| ctinfo == IP_CT_RELATED+IP_CT_IS_REPLY))
return IPT_CONTINUE;
return XT_CONTINUE;

/* ip_conntrack_icmp guarantees us that we only have ICMP_ECHO,
* TIMESTAMP, INFO_REQUEST or ADDRESS type icmp packets from here
Expand Down Expand Up @@ -368,7 +369,7 @@ target(struct sk_buff **pskb,
* actually a unicast IP packet. TCP doesn't like PACKET_MULTICAST */
(*pskb)->pkt_type = PACKET_HOST;

return IPT_CONTINUE;
return XT_CONTINUE;
}

static int
Expand Down Expand Up @@ -471,8 +472,9 @@ static void destroy(const struct xt_target *target, void *targinfo)
nf_ct_l3proto_module_put(target->family);
}

static struct ipt_target clusterip_tgt = {
static struct xt_target clusterip_tgt = {
.name = "CLUSTERIP",
.family = AF_INET,
.target = target,
.targetsize = sizeof(struct ipt_clusterip_tgt_info),
.checkentry = checkentry,
Expand Down Expand Up @@ -728,7 +730,7 @@ static int __init ipt_clusterip_init(void)
{
int ret;

ret = ipt_register_target(&clusterip_tgt);
ret = xt_register_target(&clusterip_tgt);
if (ret < 0)
return ret;

Expand All @@ -754,7 +756,7 @@ static int __init ipt_clusterip_init(void)
nf_unregister_hook(&cip_arp_ops);
#endif /* CONFIG_PROC_FS */
cleanup_target:
ipt_unregister_target(&clusterip_tgt);
xt_unregister_target(&clusterip_tgt);
return ret;
}

Expand All @@ -766,7 +768,7 @@ static void __exit ipt_clusterip_fini(void)
remove_proc_entry(clusterip_procdir->name, clusterip_procdir->parent);
#endif
nf_unregister_hook(&cip_arp_ops);
ipt_unregister_target(&clusterip_tgt);
xt_unregister_target(&clusterip_tgt);
}

module_init(ipt_clusterip_init);
Expand Down
13 changes: 8 additions & 5 deletions net/ipv4/netfilter/ipt_ECN.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
* ipt_ECN.c,v 1.5 2002/08/18 19:36:51 laforge Exp
*/

#include <linux/in.h>
#include <linux/module.h>
#include <linux/skbuff.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#include <net/checksum.h>

#include <linux/netfilter/x_tables.h>
#include <linux/netfilter_ipv4/ip_tables.h>
#include <linux/netfilter_ipv4/ipt_ECN.h>

Expand Down Expand Up @@ -95,7 +97,7 @@ target(struct sk_buff **pskb,
if (!set_ect_tcp(pskb, einfo))
return NF_DROP;

return IPT_CONTINUE;
return XT_CONTINUE;
}

static int
Expand All @@ -119,16 +121,17 @@ checkentry(const char *tablename,
return 0;
}
if ((einfo->operation & (IPT_ECN_OP_SET_ECE|IPT_ECN_OP_SET_CWR))
&& (e->ip.proto != IPPROTO_TCP || (e->ip.invflags & IPT_INV_PROTO))) {
&& (e->ip.proto != IPPROTO_TCP || (e->ip.invflags & XT_INV_PROTO))) {
printk(KERN_WARNING "ECN: cannot use TCP operations on a "
"non-tcp rule\n");
return 0;
}
return 1;
}

static struct ipt_target ipt_ecn_reg = {
static struct xt_target ipt_ecn_reg = {
.name = "ECN",
.family = AF_INET,
.target = target,
.targetsize = sizeof(struct ipt_ECN_info),
.table = "mangle",
Expand All @@ -138,12 +141,12 @@ static struct ipt_target ipt_ecn_reg = {

static int __init ipt_ecn_init(void)
{
return ipt_register_target(&ipt_ecn_reg);
return xt_register_target(&ipt_ecn_reg);
}

static void __exit ipt_ecn_fini(void)
{
ipt_unregister_target(&ipt_ecn_reg);
xt_unregister_target(&ipt_ecn_reg);
}

module_init(ipt_ecn_init);
Expand Down
11 changes: 6 additions & 5 deletions net/ipv4/netfilter/ipt_LOG.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include <net/route.h>

#include <linux/netfilter.h>
#include <linux/netfilter_ipv4/ip_tables.h>
#include <linux/netfilter/x_tables.h>
#include <linux/netfilter_ipv4/ipt_LOG.h>

MODULE_LICENSE("GPL");
Expand Down Expand Up @@ -432,7 +432,7 @@ ipt_log_target(struct sk_buff **pskb,

ipt_log_packet(PF_INET, hooknum, *pskb, in, out, &li,
loginfo->prefix);
return IPT_CONTINUE;
return XT_CONTINUE;
}

static int ipt_log_checkentry(const char *tablename,
Expand All @@ -455,8 +455,9 @@ static int ipt_log_checkentry(const char *tablename,
return 1;
}

static struct ipt_target ipt_log_reg = {
static struct xt_target ipt_log_reg = {
.name = "LOG",
.family = AF_INET,
.target = ipt_log_target,
.targetsize = sizeof(struct ipt_log_info),
.checkentry = ipt_log_checkentry,
Expand All @@ -473,7 +474,7 @@ static int __init ipt_log_init(void)
{
int ret;

ret = ipt_register_target(&ipt_log_reg);
ret = xt_register_target(&ipt_log_reg);
if (ret < 0)
return ret;
if (nf_log_register(PF_INET, &ipt_log_logger) < 0) {
Expand All @@ -489,7 +490,7 @@ static int __init ipt_log_init(void)
static void __exit ipt_log_fini(void)
{
nf_log_unregister_logger(&ipt_log_logger);
ipt_unregister_target(&ipt_log_reg);
xt_unregister_target(&ipt_log_reg);
}

module_init(ipt_log_init);
Expand Down
Loading

0 comments on commit 6709dbb

Please sign in to comment.