summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--iptables/nft.c10
-rw-r--r--iptables/xtables.c2
2 files changed, 7 insertions, 5 deletions
diff --git a/iptables/nft.c b/iptables/nft.c
index a9a391df..3d5a1532 100644
--- a/iptables/nft.c
+++ b/iptables/nft.c
@@ -2543,11 +2543,13 @@ int nft_rule_list_save(struct nft_handle *h, const char *chain,
struct nft_chain_list *list;
struct nft_chain_list_iter *iter;
struct nft_chain *c;
+ int ret = 1;
list = nft_chain_dump(h);
/* Dump policies and custom chains first */
- nft_rule_list_chain_save(h, table, list, counters);
+ if (!rulenum)
+ nft_rule_list_chain_save(h, table, list, counters);
/* Now dump out rules in this table */
iter = nft_chain_list_iter_create(list);
@@ -2566,15 +2568,15 @@ int nft_rule_list_save(struct nft_handle *h, const char *chain,
if (chain && strcmp(chain, chain_name) != 0)
goto next;
- __nft_rule_list(h, c, table, rulenum,
- counters ? 0 : FMT_NOCOUNTS, list_save);
+ ret = __nft_rule_list(h, c, table, rulenum,
+ counters ? 0 : FMT_NOCOUNTS, list_save);
next:
c = nft_chain_list_iter_next(iter);
}
err:
nft_chain_list_free(list);
- return 1;
+ return ret;
}
static int nft_action(struct nft_handle *h, int type)
diff --git a/iptables/xtables.c b/iptables/xtables.c
index c712aaf4..a5a83c24 100644
--- a/iptables/xtables.c
+++ b/iptables/xtables.c
@@ -582,7 +582,7 @@ list_rules(struct nft_handle *h, const char *chain, const char *table,
nft_rule_list_save(h, chain, table, rulenum, counters);
- /* FIXME found */
+ /* iptables does not return error if rule number not found */
return 1;
}