diff options
author | Phil Sutter <phil@nwl.cc> | 2021-12-23 18:29:40 +0100 |
---|---|---|
committer | Phil Sutter <phil@nwl.cc> | 2022-01-12 14:04:52 +0100 |
commit | ece001c258e3fd8779e177ef00394877f2327f56 (patch) | |
tree | 9ae2336ba2e9b9276132f41f331f5f62dfdbab1d /iptables/xtables.c | |
parent | 17abaeb16afd6cdc17dddb4e1526d31cdfc8cb60 (diff) |
xtables: Pass xtables_args to check_inverse()
It holds the accessed family field as well and is more generic than
nft_handle.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Diffstat (limited to 'iptables/xtables.c')
-rw-r--r-- | iptables/xtables.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/iptables/xtables.c b/iptables/xtables.c index db0cec24..5e8c027b 100644 --- a/iptables/xtables.c +++ b/iptables/xtables.c @@ -158,10 +158,10 @@ static void check_empty_interface(struct xtables_args *args, const char *arg) fprintf(stderr, "%s", msg); } -static void check_inverse(struct nft_handle *h, const char option[], +static void check_inverse(struct xtables_args *args, const char option[], bool *invert, int *optidx, int argc) { - switch (h->family) { + switch (args->family) { case NFPROTO_ARP: break; default: @@ -364,7 +364,7 @@ void do_parse(struct nft_handle *h, int argc, char *argv[], * Option selection */ case 'p': - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_PROTOCOL, &args->invflags, invert); @@ -387,14 +387,14 @@ void do_parse(struct nft_handle *h, int argc, char *argv[], break; case 's': - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_SOURCE, &args->invflags, invert); args->shostnetworkmask = argv[optind - 1]; break; case 'd': - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_DESTINATION, &args->invflags, invert); args->dhostnetworkmask = argv[optind - 1]; @@ -410,21 +410,21 @@ void do_parse(struct nft_handle *h, int argc, char *argv[], #endif case 2:/* src-mac */ - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_S_MAC, &args->invflags, invert); args->src_mac = argv[optind - 1]; break; case 3:/* dst-mac */ - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_D_MAC, &args->invflags, invert); args->dst_mac = argv[optind - 1]; break; case 'l':/* hardware length */ - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_H_LENGTH, &args->invflags, invert); args->arp_hlen = argv[optind - 1]; @@ -433,21 +433,21 @@ void do_parse(struct nft_handle *h, int argc, char *argv[], case 8: /* was never supported, not even in arptables-legacy */ xtables_error(PARAMETER_PROBLEM, "not supported"); case 4:/* opcode */ - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_OPCODE, &args->invflags, invert); args->arp_opcode = argv[optind - 1]; break; case 5:/* h-type */ - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_H_TYPE, &args->invflags, invert); args->arp_htype = argv[optind - 1]; break; case 6:/* proto-type */ - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_P_TYPE, &args->invflags, invert); args->arp_ptype = argv[optind - 1]; @@ -461,7 +461,7 @@ void do_parse(struct nft_handle *h, int argc, char *argv[], case 'i': check_empty_interface(args, optarg); - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_VIANAMEIN, &args->invflags, invert); xtables_parse_interface(argv[optind - 1], @@ -471,7 +471,7 @@ void do_parse(struct nft_handle *h, int argc, char *argv[], case 'o': check_empty_interface(args, optarg); - check_inverse(h, optarg, &invert, &optind, argc); + check_inverse(args, optarg, &invert, &optind, argc); set_option(&cs->options, OPT_VIANAMEOUT, &args->invflags, invert); xtables_parse_interface(argv[optind - 1], |