]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
rule: add do_list_tables()
authorPablo Neira Ayuso <pablo@netfilter.org>
Mon, 6 Jul 2015 11:39:14 +0000 (13:39 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 14 Jul 2015 16:07:14 +0000 (18:07 +0200)
Wrap code to list existing tables in a function.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/rule.c

index 993f9704b6e4c4df6122009fb76a807d0321c09a..1e712a554959f6cc2b055f75474b2332c7e15e99 100644 (file)
@@ -900,6 +900,21 @@ static int do_list_ruleset(struct netlink_ctx *ctx, struct cmd *cmd)
        return 0;
 }
 
+static int do_list_tables(struct netlink_ctx *ctx, struct cmd *cmd)
+{
+       struct table *table;
+
+       if (netlink_list_tables(ctx, &cmd->handle, &cmd->location) < 0)
+               return -1;
+
+       list_for_each_entry(table, &table_list, list)
+               printf("table %s %s\n",
+                      family2str(table->handle.family),
+                      table->handle.table);
+
+       return 0;
+}
+
 static int do_command_list(struct netlink_ctx *ctx, struct cmd *cmd)
 {
        struct table *table = NULL;
@@ -917,21 +932,8 @@ static int do_command_list(struct netlink_ctx *ctx, struct cmd *cmd)
 
        switch (cmd->obj) {
        case CMD_OBJ_TABLE:
-               if (!cmd->handle.table) {
-                       /* List all existing tables */
-                       struct table *table;
-
-                       if (netlink_list_tables(ctx, &cmd->handle,
-                                               &cmd->location) < 0)
-                               return -1;
-
-                       list_for_each_entry(table, &ctx->list, list) {
-                               printf("table %s %s\n",
-                                      family2str(table->handle.family),
-                                      table->handle.table);
-                       }
-                       return 0;
-               }
+               if (!cmd->handle.table)
+                       return do_list_tables(ctx, cmd);
                return do_list_table(ctx, cmd, table);
        case CMD_OBJ_CHAIN:
                return do_list_table(ctx, cmd, table);