mirror of
git://git.code.sf.net/p/xtables-addons/xtables-addons
synced 2025-09-06 04:35:12 +02:00
Add the "STEAL" target from the "demos" branch
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
- fuzzy: need to account for kernel-level modified variables in .userspacesize
|
||||
- geoip: remove XT_ALIGN from .userspacesize when used with offsetof
|
||||
- add "STEAL" target
|
||||
|
||||
|
||||
Xtables-addons 1.13 (March 23 2009)
|
||||
|
@@ -12,6 +12,7 @@ obj-${build_ECHO} += xt_ECHO.o
|
||||
obj-${build_IPMARK} += xt_IPMARK.o
|
||||
obj-${build_LOGMARK} += xt_LOGMARK.o
|
||||
obj-${build_SYSRQ} += xt_SYSRQ.o
|
||||
obj-${build_STEAL} += xt_STEAL.o
|
||||
obj-${build_TARPIT} += xt_TARPIT.o
|
||||
obj-${build_TEE} += xt_TEE.o
|
||||
obj-${build_condition} += xt_condition.o
|
||||
|
@@ -4,6 +4,7 @@ obj-${build_DHCPADDR} += libxt_DHCPADDR.so libxt_dhcpaddr.so
|
||||
obj-${build_ECHO} += libxt_ECHO.so
|
||||
obj-${build_IPMARK} += libxt_IPMARK.so
|
||||
obj-${build_LOGMARK} += libxt_LOGMARK.so
|
||||
obj-${build_STEAL} += libxt_STEAL.so
|
||||
obj-${build_SYSRQ} += libxt_SYSRQ.so
|
||||
obj-${build_TARPIT} += libxt_TARPIT.so
|
||||
obj-${build_TEE} += libxt_TEE.so
|
||||
|
33
extensions/libxt_STEAL.c
Normal file
33
extensions/libxt_STEAL.c
Normal file
@@ -0,0 +1,33 @@
|
||||
#include <stdio.h>
|
||||
#include <xtables.h>
|
||||
|
||||
static void steal_tg_help(void)
|
||||
{
|
||||
printf("STEAL takes no options\n\n");
|
||||
}
|
||||
|
||||
static int steal_tg_parse(int c, char **argv, int invert, unsigned int *flags,
|
||||
const void *entry, struct xt_entry_target **target)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void steal_tg_check(unsigned int flags)
|
||||
{
|
||||
}
|
||||
|
||||
static struct xtables_target steal_tg_reg = {
|
||||
.version = XTABLES_VERSION,
|
||||
.name = "STEAL",
|
||||
.family = AF_INET,
|
||||
.size = XT_ALIGN(0),
|
||||
.userspacesize = XT_ALIGN(0),
|
||||
.help = steal_tg_help,
|
||||
.parse = steal_tg_parse,
|
||||
.final_check = steal_tg_check,
|
||||
};
|
||||
|
||||
static void _init(void)
|
||||
{
|
||||
xtables_register_target(&steal_tg_reg);
|
||||
}
|
2
extensions/libxt_STEAL.man
Normal file
2
extensions/libxt_STEAL.man
Normal file
@@ -0,0 +1,2 @@
|
||||
Like the DROP target, but does not throw an error like DROP when used in the
|
||||
\fBOUTPUT\fP chain.
|
66
extensions/xt_STEAL.c
Normal file
66
extensions/xt_STEAL.c
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* "STEAL" demo target extension for Xtables
|
||||
* written by Jan Engelhardt <jengelh [at] medozas de>, 2008 - 2009
|
||||
* placed in the Public Domain
|
||||
*/
|
||||
#include <linux/netfilter.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include "compat_xtables.h"
|
||||
|
||||
static unsigned int
|
||||
steal_tg(struct sk_buff **pskb, const struct xt_target_param *par)
|
||||
{
|
||||
kfree_skb(*pskb);
|
||||
return NF_STOLEN;
|
||||
}
|
||||
|
||||
static struct xt_target steal_tg_reg[] __read_mostly = {
|
||||
{
|
||||
.name = "STEAL",
|
||||
.revision = 0,
|
||||
.family = NFPROTO_UNSPEC,
|
||||
.target = steal_tg,
|
||||
.me = THIS_MODULE,
|
||||
},
|
||||
{
|
||||
.name = "STEAL",
|
||||
.revision = 0,
|
||||
.family = NFPROTO_IPV6,
|
||||
.target = steal_tg,
|
||||
.me = THIS_MODULE,
|
||||
},
|
||||
{
|
||||
.name = "STEAL",
|
||||
.revision = 0,
|
||||
.family = NFPROTO_ARP,
|
||||
.target = steal_tg,
|
||||
.me = THIS_MODULE,
|
||||
},
|
||||
{
|
||||
.name = "STEAL",
|
||||
.revision = 0,
|
||||
.family = NFPROTO_BRIDGE,
|
||||
.target = steal_tg,
|
||||
.me = THIS_MODULE,
|
||||
},
|
||||
};
|
||||
|
||||
static int __init steal_tg_init(void)
|
||||
{
|
||||
return xt_register_targets(steal_tg_reg, ARRAY_SIZE(steal_tg_reg));
|
||||
}
|
||||
|
||||
static void __exit steal_tg_exit(void)
|
||||
{
|
||||
xt_unregister_targets(steal_tg_reg, ARRAY_SIZE(steal_tg_reg));
|
||||
}
|
||||
|
||||
module_init(steal_tg_init);
|
||||
module_exit(steal_tg_exit);
|
||||
MODULE_AUTHOR("Jan Engelhardt <jengelh@medozas.de>");
|
||||
MODULE_DESCRIPTION("Xtables: Silently DROP packets on output chain");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("ipt_STEAL");
|
||||
MODULE_ALIAS("ip6t_STEAL");
|
||||
MODULE_ALIAS("arpt_STEAL");
|
||||
MODULE_ALIAS("ebt_STEAL");
|
Reference in New Issue
Block a user