From ff587205009a0d49e2d086765de87dc619b028bb Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Tue, 8 Feb 2005 20:02:28 +0000 Subject: general cleanup + add -C and -c --- extensions/ebt_nat.c | 48 ++++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) (limited to 'extensions/ebt_nat.c') diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c index f2e79ca..5906ac4 100644 --- a/extensions/ebt_nat.c +++ b/extensions/ebt_nat.c @@ -1,3 +1,11 @@ +/* ebt_nat + * + * Authors: + * Bart De Schuymer + * + * June, 2002 + */ + #include #include #include @@ -73,17 +81,16 @@ static int parse_s(int c, char **argv, int argc, switch (c) { case NAT_S: - ebt_check_option(flags, OPT_SNAT); + ebt_check_option2(flags, OPT_SNAT); to_source_supplied = 1; if (!(addr = ether_aton(optarg))) - ebt_print_error("Problem with specified --to-source " - "mac"); + ebt_print_error2("Problem with specified --to-source mac"); memcpy(natinfo->mac, addr, ETH_ALEN); break; case NAT_S_TARGET: - ebt_check_option(flags, OPT_SNAT_TARGET); + ebt_check_option2(flags, OPT_SNAT_TARGET); if (FILL_TARGET(optarg, natinfo->target)) - ebt_print_error("Illegal --snat-target target"); + ebt_print_error2("Illegal --snat-target target"); break; default: return 0; @@ -102,17 +109,16 @@ static int parse_d(int c, char **argv, int argc, switch (c) { case NAT_D: - ebt_check_option(flags, OPT_DNAT); + ebt_check_option2(flags, OPT_DNAT); to_dest_supplied = 1; if (!(addr = ether_aton(optarg))) - ebt_print_error("Problem with specified " - "--to-destination mac"); + ebt_print_error2("Problem with specified --to-destination mac"); memcpy(natinfo->mac, addr, ETH_ALEN); break; case NAT_D_TARGET: - ebt_check_option(flags, OPT_DNAT_TARGET); + ebt_check_option2(flags, OPT_DNAT_TARGET); if (FILL_TARGET(optarg, natinfo->target)) - ebt_print_error("Illegal --dnat-target target"); + ebt_print_error2("Illegal --dnat-target target"); break; default: return 0; @@ -126,13 +132,14 @@ static void final_check_s(const struct ebt_u_entry *entry, { struct ebt_nat_info *natinfo = (struct ebt_nat_info *)target->data; - if (BASE_CHAIN && natinfo->target == EBT_RETURN) - ebt_print_error("--snat-target RETURN not allowed on base " - "chain"); + if (BASE_CHAIN && natinfo->target == EBT_RETURN) { + ebt_print_error("--snat-target RETURN not allowed on base chain"); + return; + } CLEAR_BASE_CHAIN_BIT; - if ((hookmask & ~(1 << NF_BR_POST_ROUTING)) || strcmp(name, "nat")) + if ((hookmask & ~(1 << NF_BR_POST_ROUTING)) || strcmp(name, "nat")) { ebt_print_error("Wrong chain for snat"); - if (time == 0 && to_source_supplied == 0) + } else if (time == 0 && to_source_supplied == 0) ebt_print_error("No snat address supplied"); } @@ -142,15 +149,16 @@ static void final_check_d(const struct ebt_u_entry *entry, { struct ebt_nat_info *natinfo = (struct ebt_nat_info *)target->data; - if (BASE_CHAIN && natinfo->target == EBT_RETURN) - ebt_print_error("--dnat-target RETURN not allowed on base " - "chain"); + if (BASE_CHAIN && natinfo->target == EBT_RETURN) { + ebt_print_error("--dnat-target RETURN not allowed on base chain"); + return; + } CLEAR_BASE_CHAIN_BIT; if (((hookmask & ~((1 << NF_BR_PRE_ROUTING) | (1 << NF_BR_LOCAL_OUT))) || strcmp(name, "nat")) && - ((hookmask & ~(1 << NF_BR_BROUTING)) || strcmp(name, "broute"))) + ((hookmask & ~(1 << NF_BR_BROUTING)) || strcmp(name, "broute"))) { ebt_print_error("Wrong chain for dnat"); - if (time == 0 && to_dest_supplied == 0) + } if (time == 0 && to_dest_supplied == 0) ebt_print_error("No dnat address supplied"); } -- cgit v1.2.3