]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
ebtables-nft: make -L, -X CHAINNAME work
authorFlorian Westphal <fw@strlen.de>
Thu, 28 Jun 2018 22:15:27 +0000 (00:15 +0200)
committerFlorian Westphal <fw@strlen.de>
Fri, 29 Jun 2018 12:37:08 +0000 (14:37 +0200)
In both cases the argument is optional, in both cases
the argument wasn't evaluated.

Signed-off-by: Florian Westphal <fw@strlen.de>
iptables/xtables-eb.c

index a88bf62c2d56a4b948d212ce408bb01c681c9479..57026f0e0e024596de858f8bf34dbe920494a681 100644 (file)
@@ -819,6 +819,11 @@ int do_commandeb(struct nft_handle *h, int argc, char *argv[], char **table)
                                ret = nft_chain_user_add(h, chain, *table);
                                break;
                        } else if (c == 'X') {
+                               /* X arg is optional, optarg is NULL */
+                               if (!chain && optind < argc && argv[optind][0] != '-') {
+                                       chain = argv[optind];
+                                       optind++;
+                               }
                                ret = nft_chain_user_del(h, chain, *table);
                                break;
                        }
@@ -897,20 +902,10 @@ print_zero:
                                        goto print_zero;
                        }
 
-                       /*if (!(replace->flags & OPT_KERNELDATA))
-                               ebt_get_kernel_table(replace, 0);
-                       i = -1;
                        if (optind < argc && argv[optind][0] != '-') {
-                               if ((i = ebt_get_chainnr(replace, argv[optind])) == -1)
-                                       ebt_print_error2("Chain '%s' doesn't exist", argv[optind]);
+                               chain = argv[optind];
                                optind++;
                        }
-                       if (i != -1) {
-                               if (c == 'Z')
-                                       zerochain = i;
-                               else
-                                       replace->selected_chain = i;
-                       }*/
                        break;
                case 'V': /* Version */
                        if (OPT_COMMANDS)