Linus, please apply v2.3.99-pre6
Some people are writing funky iptables extensions which require
destructors on rules. I didn't need them before, so didn't implement
them before.
Rusty.
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/include/linux/netfilter_ipv4/ip_tables.h
working/include/linux/netfilter_ipv4/ip_tables.h
--- linux-2.3.99-pre-6-2-rusty/include/linux/netfilter_ipv4/ip_tables.h Mon Apr
17 21:59:34 2000
+++ working/include/linux/netfilter_ipv4/ip_tables.h Wed Apr 19 15:28:49 2000
@@ -346,6 +346,9 @@
unsigned int matchinfosize,
unsigned int hook_mask);
+ /* Called when entry of this type deleted. */
+ void (*destroy)(void *matchinfo, unsigned int matchinfosize);
+
/* Set this to THIS_MODULE if you are a module, otherwise NULL */
struct module *me;
};
@@ -374,6 +377,9 @@
void *targinfo,
unsigned int targinfosize,
unsigned int hook_mask);
+
+ /* Called when entry of this type deleted. */
+ void (*destroy)(void *targinfo, unsigned int targinfosize);
/* Set this to THIS_MODULE if you are a module, otherwise NULL */
struct module *me;
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ip_tables.c
working/net/ipv4/netfilter/ip_tables.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ip_tables.c Fri Apr 14
17:41:01 2000
+++ working/net/ipv4/netfilter/ip_tables.c Wed Apr 19 15:35:04 2000
@@ -589,6 +589,9 @@
if (i && (*i)-- == 0)
return 1;
+ if (m->u.match->destroy)
+ m->u.match->destroy(m->data, m->match_size - sizeof(*m));
+
if (m->u.match->me)
__MOD_DEC_USE_COUNT(m->u.match->me);
@@ -769,6 +772,8 @@
/* Cleanup all matches */
IPT_MATCH_ITERATE(e, cleanup_match, NULL);
t = ipt_get_target(e);
+ if (t->u.target->destroy)
+ t->u.target->destroy(t->data, t->target_size - sizeof(*t));
if (t->u.target->me)
__MOD_DEC_USE_COUNT(t->u.target->me);
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_LOG.c
working/net/ipv4/netfilter/ipt_LOG.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_LOG.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_LOG.c Wed Apr 19 19:35:25 2000
@@ -345,7 +345,8 @@
}
static struct ipt_target ipt_log_reg
-= { { NULL, NULL }, "LOG", ipt_log_target, ipt_log_checkentry, THIS_MODULE };
+= { { NULL, NULL }, "LOG", ipt_log_target, ipt_log_checkentry, NULL,
+ THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_MARK.c
working/net/ipv4/netfilter/ipt_MARK.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_MARK.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_MARK.c Wed Apr 19 19:35:28 2000
@@ -47,7 +47,7 @@
}
static struct ipt_target ipt_mark_reg
-= { { NULL, NULL }, "MARK", target, checkentry, THIS_MODULE };
+= { { NULL, NULL }, "MARK", target, checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_MASQUERADE.c
working/net/ipv4/netfilter/ipt_MASQUERADE.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_MASQUERADE.c Wed Apr
12 17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_MASQUERADE.c Sun Apr 23 23:38:40 2000
@@ -142,7 +142,7 @@
};
static struct ipt_target masquerade
-= { { NULL, NULL }, "MASQUERADE", masquerade_target, masquerade_check,
+= { { NULL, NULL }, "MASQUERADE", masquerade_target, masquerade_check, NULL,
THIS_MODULE };
static int __init init(void)
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_MIRROR.c
working/net/ipv4/netfilter/ipt_MIRROR.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_MIRROR.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_MIRROR.c Wed Apr 19 19:36:27 2000
@@ -113,7 +113,7 @@
}
static struct ipt_target ipt_mirror_reg
-= { { NULL, NULL }, "MIRROR", ipt_mirror_target, ipt_mirror_checkentry,
+= { { NULL, NULL }, "MIRROR", ipt_mirror_target, ipt_mirror_checkentry, NULL,
THIS_MODULE };
static int __init init(void)
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_REDIRECT.c
working/net/ipv4/netfilter/ipt_REDIRECT.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_REDIRECT.c Wed Apr
12 17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_REDIRECT.c Wed Apr 19 19:35:44 2000
@@ -86,7 +86,8 @@
}
static struct ipt_target redirect_reg
-= { { NULL, NULL }, "REDIRECT", redirect_target, redirect_check, THIS_MODULE };
+= { { NULL, NULL }, "REDIRECT", redirect_target, redirect_check, NULL,
+ THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_REJECT.c
working/net/ipv4/netfilter/ipt_REJECT.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_REJECT.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_REJECT.c Wed Apr 19 19:35:49 2000
@@ -120,7 +120,7 @@
}
static struct ipt_target ipt_reject_reg
-= { { NULL, NULL }, "REJECT", reject, check, THIS_MODULE };
+= { { NULL, NULL }, "REJECT", reject, check, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_TOS.c
working/net/ipv4/netfilter/ipt_TOS.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_TOS.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_TOS.c Wed Apr 19 19:35:52 2000
@@ -66,7 +66,7 @@
}
static struct ipt_target ipt_tos_reg
-= { { NULL, NULL }, "TOS", target, checkentry, THIS_MODULE };
+= { { NULL, NULL }, "TOS", target, checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_limit.c
working/net/ipv4/netfilter/ipt_limit.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_limit.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_limit.c Wed Apr 19 18:13:04 2000
@@ -124,7 +124,7 @@
}
static struct ipt_match ipt_limit_reg
-= { { NULL, NULL }, "limit", ipt_limit_match, ipt_limit_checkentry,
+= { { NULL, NULL }, "limit", ipt_limit_match, ipt_limit_checkentry, NULL,
THIS_MODULE };
static int __init init(void)
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_mac.c
working/net/ipv4/netfilter/ipt_mac.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_mac.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_mac.c Wed Apr 19 19:35:56 2000
@@ -46,7 +46,7 @@
}
static struct ipt_match mac_match
-= { { NULL, NULL }, "mac", &match, &ipt_mac_checkentry, THIS_MODULE };
+= { { NULL, NULL }, "mac", &match, &ipt_mac_checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_mark.c
working/net/ipv4/netfilter/ipt_mark.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_mark.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_mark.c Wed Apr 19 19:35:59 2000
@@ -34,7 +34,7 @@
}
static struct ipt_match mark_match
-= { { NULL, NULL }, "mark", &match, &checkentry, THIS_MODULE };
+= { { NULL, NULL }, "mark", &match, &checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_multiport.c
working/net/ipv4/netfilter/ipt_multiport.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_multiport.c Wed Apr
12 17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_multiport.c Wed Apr 19 19:36:02 2000
@@ -84,7 +84,7 @@
}
static struct ipt_match multiport_match
-= { { NULL, NULL }, "multiport", &match, &checkentry, THIS_MODULE };
+= { { NULL, NULL }, "multiport", &match, &checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_owner.c
working/net/ipv4/netfilter/ipt_owner.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_owner.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_owner.c Wed Apr 19 19:36:05 2000
@@ -118,7 +118,7 @@
}
static struct ipt_match owner_match
-= { { NULL, NULL }, "owner", &match, &checkentry, THIS_MODULE };
+= { { NULL, NULL }, "owner", &match, &checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_state.c
working/net/ipv4/netfilter/ipt_state.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_state.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_state.c Wed Apr 19 19:36:08 2000
@@ -42,7 +42,7 @@
}
static struct ipt_match state_match
-= { { NULL, NULL }, "state", &match, &check, THIS_MODULE };
+= { { NULL, NULL }, "state", &match, &check, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_tos.c
working/net/ipv4/netfilter/ipt_tos.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_tos.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_tos.c Wed Apr 19 19:36:10 2000
@@ -35,7 +35,7 @@
}
static struct ipt_match tos_match
-= { { NULL, NULL }, "tos", &match, &checkentry, THIS_MODULE };
+= { { NULL, NULL }, "tos", &match, &checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
diff -urN --minimal --exclude *.lds --exclude *.ps --exclude *.pdf --exclude
*.sgml --exclude *.tex --exclude *.aux --exclude *.log --exclude classlist.h
--exclude devlist.h --exclude autoconf.h --exclude compile.h --exclude
version.h --exclude .* --exclude *.[oa] --exclude *.orig --exclude config
--exclude asm --exclude modules --exclude *.[Ss] --exclude System.map --exclude
consolemap_deftbl.c --exclude *~ --exclude TAGS --exclude tags --exclude
modversions.h --exclude install-kernel
linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_unclean.c
working/net/ipv4/netfilter/ipt_unclean.c
--- linux-2.3.99-pre-6-2-rusty/net/ipv4/netfilter/ipt_unclean.c Wed Apr 12
17:13:07 2000
+++ working/net/ipv4/netfilter/ipt_unclean.c Wed Apr 19 19:36:14 2000
@@ -558,7 +558,7 @@
}
static struct ipt_match unclean_match
-= { { NULL, NULL }, "unclean", &match, &checkentry, THIS_MODULE };
+= { { NULL, NULL }, "unclean", &match, &checkentry, NULL, THIS_MODULE };
static int __init init(void)
{
--
Hacking time.
|