From aba3cd75962eef91dd42d8cad0e2aaea160c3a65 Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Sun, 23 Jun 2002 18:54:34 +0000 Subject: *** empty log message *** --- userspace/ebtables2/ebtables.c | 4 +++- userspace/ebtables2/extensions/ebt_nat.c | 8 ++++---- userspace/ebtables2/extensions/ebt_redirect.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'userspace') diff --git a/userspace/ebtables2/ebtables.c b/userspace/ebtables2/ebtables.c index 103d1db..d4c6a6b 100644 --- a/userspace/ebtables2/ebtables.c +++ b/userspace/ebtables2/ebtables.c @@ -653,7 +653,7 @@ enddst: w_l = w_l->next; } - printf("-j "); + printf("-j %s ", hlp->t->u.name); t = find_target(hlp->t->u.name); if (!t) print_bug("Target not found"); @@ -1969,6 +1969,8 @@ int main(int argc, char *argv[]) } } + if ( !table && !(table = find_table(replace.name)) ) + print_error("Bad table name"); // database stuff before ebtables stuff if (replace.command == 'b') allowdb(allowbc); diff --git a/userspace/ebtables2/extensions/ebt_nat.c b/userspace/ebtables2/extensions/ebt_nat.c index 06414cf..fe7cd1a 100644 --- a/userspace/ebtables2/extensions/ebt_nat.c +++ b/userspace/ebtables2/extensions/ebt_nat.c @@ -88,7 +88,7 @@ static int parse_s(int c, char **argv, int argc, check_option(flags, OPT_SNAT_TARGET); for (i = 0; i < NUM_STANDARD_TARGETS; i++) if (!strcmp(optarg, standard_targets[i])) { - natinfo->target = i; + natinfo->target = -i - 1; break; } if (i == NUM_STANDARD_TARGETS) @@ -123,7 +123,7 @@ static int parse_d(int c, char **argv, int argc, check_option(flags, OPT_DNAT_TARGET); for (i = 0; i < NUM_STANDARD_TARGETS; i++) if (!strcmp(optarg, standard_targets[i])) { - natinfo->target = i; + natinfo->target = -i - 1; break; } if (i == NUM_STANDARD_TARGETS) @@ -162,7 +162,7 @@ static void print_s(const struct ebt_u_entry *entry, printf("--to-src "); printf("%s", ether_ntoa((struct ether_addr *)natinfo->mac)); - printf(" --snat-target %s", standard_targets[natinfo->target]); + printf(" --snat-target %s", standard_targets[-natinfo->target - 1]); } static void print_d(const struct ebt_u_entry *entry, @@ -172,7 +172,7 @@ static void print_d(const struct ebt_u_entry *entry, printf("--to-dst "); printf("%s", ether_ntoa((struct ether_addr *)natinfo->mac)); - printf(" --dnat-target %s", standard_targets[natinfo->target]); + printf(" --dnat-target %s", standard_targets[-natinfo->target - 1]); } static int compare(const struct ebt_entry_target *t1, diff --git a/userspace/ebtables2/extensions/ebt_redirect.c b/userspace/ebtables2/extensions/ebt_redirect.c index 1fc7fd8..5d329e7 100644 --- a/userspace/ebtables2/extensions/ebt_redirect.c +++ b/userspace/ebtables2/extensions/ebt_redirect.c @@ -46,7 +46,7 @@ static int parse(int c, char **argv, int argc, check_option(flags, OPT_REDIRECT_TARGET); for (i = 0; i < NUM_STANDARD_TARGETS; i++) if (!strcmp(optarg, standard_targets[i])) { - redirectinfo->target = i; + redirectinfo->target = -i - 1; break; } if (i == NUM_STANDARD_TARGETS) -- cgit v1.2.3