]> git.ipfire.org Git - thirdparty/nftables.git/commit
cli: use plain readline() interface with libedit
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 6 Jan 2021 11:28:01 +0000 (12:28 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 6 Jan 2021 13:09:21 +0000 (14:09 +0100)
commitbc2d5f79c2ea00250458685266b59f869d33141b
tree4968acb09b85cd73d3a7faf1132ae88eeb4c3b01
parent9420423900a2e4312c570632f7531483dea604a2
cli: use plain readline() interface with libedit

Instead of the alternate interface [1].

I spent a bit of time debugging an issue with libedit support
9420423900a2 ("cli: add libedit support") that broke tests/shell.

This is the reproducer:

 # nft -i << EOF
 list ruleset
 EOF

which makes rl_callback_read_char() loop forever on read() as shown by
strace. The rl_line_buffer variable does not accumulate the typed
characters as it should when redirecting the standard input for some
reason.

Given our interactive interface is fairly simple at this stage, switch
to use the readline() interface instead of rl_callback_read_char().

[1] https://docs.freebsd.org/info/readline/readline.info.Alternate_Interface.html

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/cli.c