[PATCH 01/09]IPtablestng/Kernel - some changes for 'x'
From: hamid jafarian <hidden>
Date: 2008-10-27 04:34:15
Also in:
netfilter-devel
Subsystem:
netfilter, networking [general], the rest · Maintainers:
Pablo Neira Ayuso, Florian Westphal, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds
export 'xt' and 'xt_prefix' symbols. export 'xt' and 'xt_prefix' symbols. this symbols are used by other part of IPtablestng. also declaring 'classifier' linklist to store the list of clasifiers beside of other linklists(targets/matches).
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index b2c62cc..94a4981 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h@@ -124,6 +124,21 @@ struct xt_counters_info struct xt_counters counters[0]; }; +#ifdef __KERNEL__ +#define SMP_ALIGN(x) (((x) + SMP_CACHE_BYTES-1) & ~(SMP_CACHE_BYTES-1)) + +struct xt_af { + struct mutex mutex; + struct list_head match; + struct list_head target; + struct list_head classifier; +#ifdef CONFIG_COMPAT + struct mutex compat_mutex; + struct compat_delta *compat_offsets; +#endif +}; +#endif + #define XT_INV_PROTO 0x40 /* Invert the sense of PROTO. */ /* fn returns 0 to continue iteration */
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
index a679208..5120002 100644
--- a/net/netfilter/x_tables.c
+++ b/net/netfilter/x_tables.c@@ -32,14 +32,14 @@ MODULE_LICENSE("GPL"); MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>"); MODULE_DESCRIPTION("[ip,ip6,arp]_tables backend module"); -#define SMP_ALIGN(x) (((x) + SMP_CACHE_BYTES-1) & ~(SMP_CACHE_BYTES-1)) +//#define SMP_ALIGN(x) (((x) + SMP_CACHE_BYTES-1) & ~(SMP_CACHE_BYTES-1)) struct compat_delta { struct compat_delta *next; unsigned int offset; short delta; }; - +/* struct xt_af { struct mutex mutex; struct list_head match;
@@ -49,8 +49,9 @@ struct xt_af { struct compat_delta *compat_offsets; #endif }; - -static struct xt_af *xt; +*/ +struct xt_af *xt; +EXPORT_SYMBOL(xt); #ifdef DEBUG_IP_FIREWALL_USER #define duprintf(format, args...) printk(format , ## args)
@@ -58,11 +59,12 @@ static struct xt_af *xt; #define duprintf(format, args...) #endif -static const char *xt_prefix[NPROTO] = { +const char *xt_prefix[NPROTO] = { [AF_INET] = "ip", [AF_INET6] = "ip6", [NF_ARP] = "arp", }; +EXPORT_SYMBOL(xt_prefix); /* Registration hooks for targets. */ int
@@ -955,6 +957,7 @@ int xt_proto_init(struct net *net, int af) if (!proc) goto out_remove_matches; proc->data = (void *)(unsigned long)af; + #endif return 0;
@@ -1024,6 +1027,7 @@ static int __init xt_init(void) #endif INIT_LIST_HEAD(&xt[i].target); INIT_LIST_HEAD(&xt[i].match); + INIT_LIST_HEAD(&xt[i].classifier); } rv = register_pernet_subsys(&xt_net_ops); if (rv < 0)