summaryrefslogtreecommitdiffstats
path: root/src/rule.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rule.c')
-rw-r--r--src/rule.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/rule.c b/src/rule.c
index 7701e211..ccfde3de 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -1003,15 +1003,8 @@ static int do_command_list(struct netlink_ctx *ctx, struct cmd *cmd)
struct table *table = NULL;
struct set *set;
- /* No need to allocate the table object when listing all tables */
- if (cmd->handle.table != NULL) {
+ if (cmd->handle.table != NULL)
table = table_lookup(&cmd->handle);
- if (table == NULL) {
- table = table_alloc();
- handle_merge(&table->handle, &cmd->handle);
- table_add_hash(table);
- }
- }
switch (cmd->obj) {
case CMD_OBJ_TABLE:
@@ -1072,14 +1065,10 @@ static int do_command_flush(struct netlink_ctx *ctx, struct cmd *cmd)
static int do_command_rename(struct netlink_ctx *ctx, struct cmd *cmd)
{
- struct table *table;
+ struct table *table = table_lookup(&cmd->handle);
struct chain *chain;
int err;
- table = table_alloc();
- handle_merge(&table->handle, &cmd->handle);
- table_add_hash(table);
-
switch (cmd->obj) {
case CMD_OBJ_CHAIN:
err = netlink_get_chain(ctx, &cmd->handle, &cmd->location);