]> git.ipfire.org Git - thirdparty/nftables.git/commit
cli: Use nft_run_cmd_from_buffer()
authorPhil Sutter <phil@nwl.cc>
Mon, 23 Oct 2017 15:33:18 +0000 (17:33 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 24 Oct 2017 13:23:55 +0000 (15:23 +0200)
commit4c15b4008c249b768ca1ec958747a9033f8235b9
tree5e62190b7a72d995e7a0607d246c978b4a253a02
parent2a3f699d99898c50c51987f8fb64cd5b11ad0dd6
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 <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/cli.h
include/nftables.h
src/cli.c
src/libnftables.c
src/main.c