diff options
Diffstat (limited to 'extensions/libipt_standard.c')
-rw-r--r-- | extensions/libipt_standard.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/extensions/libipt_standard.c b/extensions/libipt_standard.c new file mode 100644 index 0000000..9c3cdc2 --- /dev/null +++ b/extensions/libipt_standard.c @@ -0,0 +1,69 @@ +/* Shared library add-on to iptables for standard target support. */ +#include <stdio.h> +#include <netdb.h> +#include <string.h> +#include <stdlib.h> +#include <limits.h> +#include <getopt.h> +#include <iptables.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", IPTABLES_VERSION); +} + +static struct option opts[] = { + {0} +}; + +/* Initialize the target. */ +static void +init(struct ipt_entry_target *t, unsigned int *nfcache) +{ +} + +/* 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 ipt_entry *entry, + struct ipt_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 ipt_ip *ip, const struct ipt_entry_target *target) +{ +} + +static +struct iptables_target standard = { + .next = NULL, + .name = "standard", + .version = IPTABLES_VERSION, + .size = IPT_ALIGN(sizeof(int)), + .userspacesize = IPT_ALIGN(sizeof(int)), + .help = &help, + .init = &init, + .parse = &parse, + .final_check = &final_check, + .print = NULL, + .save = &save, + .extra_opts = opts +}; + +void ipt_standard_init(void) +{ + register_target(&standard); +} |