diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/Makefile | 7 | ||||
-rw-r--r-- | extensions/arpt_standard.c | 70 |
2 files changed, 77 insertions, 0 deletions
diff --git a/extensions/Makefile b/extensions/Makefile new file mode 100644 index 0000000..5db8710 --- /dev/null +++ b/extensions/Makefile @@ -0,0 +1,7 @@ +#! /usr/bin/make + +EXT_FUNC+=standard +EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o) + +extensions/ebt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h + $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< diff --git a/extensions/arpt_standard.c b/extensions/arpt_standard.c new file mode 100644 index 0000000..cb3891d --- /dev/null +++ b/extensions/arpt_standard.c @@ -0,0 +1,70 @@ +/* Shared library add-on to arptables for standard target support. */ +#include <stdio.h> +#include <netdb.h> +#include <string.h> +#include <stdlib.h> +#include <limits.h> +#include <getopt.h> +#include <arptables.h> + +/* Function which prints out usage message. */ +static void +help(void) +{ + printf( +"Standard v%s options:\n" +"(If target is DROP, ACCEPT, RETURN or nothing)\n", ARPTABLES_VERSION); +} + +static struct option opts[] = { + {0} +}; + +/* Initialize the target. */ +static void +init(struct arpt_entry_target *t) +{ +} + +/* Function which parses command options; returns true if it + ate an option */ +static int +parse(int c, char **argv, int invert, unsigned int *flags, + const struct arpt_entry *entry, + struct arpt_entry_target **target) +{ + return 0; +} + +/* Final check; don't care. */ +static void final_check(unsigned int flags) +{ +} + +/* Saves the targinfo in parsable form to stdout. */ +static void +save(const struct arpt_arp *ip, const struct arpt_entry_target *target) +{ +} + +static +struct arptables_target standard += { NULL, + "standard", + ARPTABLES_VERSION, + ARPT_ALIGN(sizeof(int)), + ARPT_ALIGN(sizeof(int)), + &help, + &init, + &parse, + &final_check, + NULL, /* print */ + &save, + opts +}; + +static void _init(void) __attribute__ ((constructor)); +static void _init(void) +{ + register_target(&standard); +} |