path: root/src/libnftables.c
diff options
authorPhil Sutter <>2017-10-23 17:33:18 +0200
committerPablo Neira Ayuso <>2017-10-24 15:23:55 +0200
commit4c15b4008c249b768ca1ec958747a9033f8235b9 (patch)
tree5e62190b7a72d995e7a0607d246c978b4a253a02 /src/libnftables.c
parent2a3f699d99898c50c51987f8fb64cd5b11ad0dd6 (diff)
cli: Use nft_run_cmd_from_buffer()
Make CLI code adhere to intended libnftables API by not open coding what nft_run_cmd_from_buffer() does. This way, nft_run() has no users outside of src/libnftables.c anymore and therefore can become static. Since nft_run_cmd_from_buffer() takes care of scanner initialization and libmnl socket passed to cli_init() is present as nft_ctx field as well, signature of cli_init() can be reduced to just take nft_ctx pointer as single argument. Note that this change introduces two (possibly unwanted) side-effects: * Input descriptor passed to scanner_push_buffer() is changed from the CLI-specific one to the one used by nft_run_cmd_from_buffer(). In practice though, this doesn't make a difference: input descriptor types INDESC_CLI and INDESC_BUFFER are treated equally by erec_print(). Also, scanner_push_buffer() NULLs input descriptor name, so that is not used at all in latter code. * Error messages are printed to stderr instead of cli_nft->output. This could be fixed by introducing an 'error_output' field in nft_ctx for nft_run_cmd_from_buffer() to use when printing error messages. Signed-off-by: Phil Sutter <> Signed-off-by: Pablo Neira Ayuso <>
Diffstat (limited to 'src/libnftables.c')
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libnftables.c b/src/libnftables.c
index d34e5275..51a87dc3 100644
--- a/src/libnftables.c
+++ b/src/libnftables.c
@@ -75,9 +75,9 @@ out:
return ret;
-int nft_run(struct nft_ctx *nft, struct mnl_socket *nf_sock,
- void *scanner, struct parser_state *state,
- struct list_head *msgs)
+static int nft_run(struct nft_ctx *nft, struct mnl_socket *nf_sock,
+ void *scanner, struct parser_state *state,
+ struct list_head *msgs)
struct cmd *cmd, *next;
int ret;