From 9cfd654314d5718393b847758ded6ef86530e5c6 Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Tue, 13 Aug 2002 16:08:08 +0000 Subject: cosmetic improvements and some bugfixes (global description) --- extensions/ebt_mark.c | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) (limited to 'extensions/ebt_mark.c') diff --git a/extensions/ebt_mark.c b/extensions/ebt_mark.c index d3c0cd3..0514254 100644 --- a/extensions/ebt_mark.c +++ b/extensions/ebt_mark.c @@ -1,21 +1,17 @@ #include #include #include -#include -#include #include #include "../include/ebtables_u.h" #include -extern char *standard_targets[NUM_STANDARD_TARGETS]; +static int mark_supplied; -int mark_supplied; - -#define MARK_TARGET '1' +#define MARK_TARGET '1' #define MARK_SETMARK '2' static struct option opts[] = { - { "mark-target" , required_argument, 0, MARK_TARGET }, + { "mark-target" , required_argument, 0, MARK_TARGET }, { "set-mark" , required_argument, 0, MARK_SETMARK }, { 0 } }; @@ -24,8 +20,8 @@ static void print_help() { printf( "mark target options:\n" - " --set-mark value : Set nfmark value\n" - " --mark-target target : ACCEPT, DROP, RETURN or CONTINUE\n"); + " --set-mark value : Set nfmark value\n" + " --mark-target target : ACCEPT, DROP, RETURN or CONTINUE\n"); } static void init(struct ebt_entry_target *target) @@ -36,16 +32,14 @@ static void init(struct ebt_entry_target *target) markinfo->target = EBT_ACCEPT; markinfo->mark = 0; mark_supplied = 0; - return; } -#define OPT_MARK_TARGET 0x01 +#define OPT_MARK_TARGET 0x01 #define OPT_MARK_SETMARK 0x02 static int parse(int c, char **argv, int argc, const struct ebt_u_entry *entry, unsigned int *flags, struct ebt_entry_target **target) { - int i; struct ebt_mark_t_info *markinfo = (struct ebt_mark_t_info *)(*target)->data; char *end; @@ -53,12 +47,7 @@ static int parse(int c, char **argv, int argc, switch (c) { case MARK_TARGET: check_option(flags, OPT_MARK_TARGET); - for (i = 0; i < NUM_STANDARD_TARGETS; i++) - if (!strcmp(optarg, standard_targets[i])) { - markinfo->target = -i - 1; - break; - } - if (i == NUM_STANDARD_TARGETS) + if (FILL_TARGET(optarg, markinfo->target)) print_error("Illegal --mark-target target"); break; case MARK_SETMARK: @@ -83,7 +72,7 @@ static void final_check(const struct ebt_u_entry *entry, if (time == 0 && mark_supplied == 0) print_error("No mark value supplied"); - if ((hook_mask & (1 << NF_BR_NUMHOOKS)) && markinfo->target == EBT_RETURN) + if (BASE_CHAIN && markinfo->target == EBT_RETURN) print_error("--mark-target RETURN not allowed on base chain"); } @@ -96,8 +85,7 @@ static void print(const struct ebt_u_entry *entry, printf("--set-mark 0x%lx", markinfo->mark); if (markinfo->target == EBT_ACCEPT) return; - printf(" --mark-target %s", - standard_targets[-markinfo->target - 1]); + printf(" --mark-target %s", TARGET_NAME(markinfo->target)); } static int compare(const struct ebt_entry_target *t1, @@ -122,7 +110,7 @@ static struct ebt_u_target mark_target = final_check, print, compare, - opts, + opts }; static void _init(void) __attribute__ ((constructor)); -- cgit v1.2.3