/* Shared library add-on to iptables for standard target support. */ #include #include #include #include #include #include #include /* 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); } /* Initialize the target. */ static void init(struct xt_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 void *entry, struct xt_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 void *ip, const struct xt_entry_target *target) { } static struct xtables_target standard = { .family = AF_INET, .name = "standard", .version = IPTABLES_VERSION, .size = XT_ALIGN(sizeof(int)), .userspacesize = XT_ALIGN(sizeof(int)), .help = &help, .init = &init, .parse = &parse, .final_check = &final_check, .print = NULL, .save = &save, }; static struct xtables_target standard6 = { .family = AF_INET6, .name = "standard", .version = IPTABLES_VERSION, .size = XT_ALIGN(sizeof(int)), .userspacesize = XT_ALIGN(sizeof(int)), .help = &help, .init = &init, .parse = &parse, .final_check = &final_check, .print = NULL, .save = &save, }; void _init(void) { xtables_register_target(&standard); xtables_register_target(&standard6); }