diff options
author | Phil Sutter <phil@nwl.cc> | 2017-10-23 17:33:17 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2017-10-24 15:23:55 +0200 |
commit | 2a3f699d99898c50c51987f8fb64cd5b11ad0dd6 (patch) | |
tree | 63a383caa67527ec57f52009e73d3048b9048cf1 /src/libnftables.c | |
parent | 49900d448ac95ecabd038a9936d467d6e37aacec (diff) |
libnftables: Introduce nft_ctx_flush_cache()
This allows an application to explicitly flush caches associated with a
given nft context, as seen in cli_complete().
Note that this is a bit inconsistent in that it releases the global
interface cache, but nft_ctx_free() does the same so at least it's not a
regression.
Note that there is no need for explicit cache update routine since cache
is populated during command execution depending on whether it is needed
or not.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/libnftables.c')
-rw-r--r-- | src/libnftables.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libnftables.c b/src/libnftables.c index 9bc51dd8..d34e5275 100644 --- a/src/libnftables.c +++ b/src/libnftables.c @@ -147,13 +147,18 @@ struct nft_ctx *nft_ctx_new(uint32_t flags) return ctx; } +void nft_ctx_flush_cache(struct nft_ctx *ctx) +{ + iface_cache_release(); + cache_release(&ctx->cache); +} + void nft_ctx_free(struct nft_ctx *ctx) { if (ctx->nf_sock) netlink_close_sock(ctx->nf_sock); - iface_cache_release(); - cache_release(&ctx->cache); + nft_ctx_flush_cache(ctx); xfree(ctx); nft_exit(); } |