]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
libnftables: Flush iface cache after command execution
authorPhil Sutter <phil@nwl.cc>
Thu, 9 Nov 2017 12:24:57 +0000 (13:24 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 13 Nov 2017 12:36:42 +0000 (13:36 +0100)
Commit 94a945ffa81b7 ("libnftables: Get rid of explicit cache flushes")
was a bit too optimistic in that it missed the remaining need to flush
interface cache after each command in interactive mode - otherwise,
newly added interfaces won't be recognized.

Although cli.c only calls nft_run_cmd_from_buffer(), flush caches in
nft_run_cmd_from_filename() as well for matters of consistency.

Fixes: 94a945ffa81b7 ("libnftables: Get rid of explicit cache flushes")
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/libnftables.c

index 0d04ec21d57d3fde12169ac9b96736549dc9e038..dc6a5fdf3264032af9172a93181a9982faf64c0f 100644 (file)
@@ -290,6 +290,7 @@ int nft_run_cmd_from_buffer(struct nft_ctx *nft, char *buf, size_t buflen)
        erec_print_list(&nft->output, &msgs, nft->debug_mask);
        nft_ctx_set_output(nft, fp);
        scanner_destroy(scanner);
+       iface_cache_release();
 
        return rc;
 }
@@ -322,6 +323,7 @@ err:
        erec_print_list(&nft->output, &msgs, nft->debug_mask);
        nft_ctx_set_output(nft, fp);
        scanner_destroy(scanner);
+       iface_cache_release();
 
        return rc;
 }