mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-02-04 00:41:41 +01:00
MINOR: cli: automatically enable a CLI I/O handler when there's no parser
Sometimes a registered keyword will not need any specific parsing nor initialization, so it's annoying to have to write an empty parsing function returning zero just for this. This patch makes it possible to automatically call a keyword's I/O handler of when the parsing function is not defined, while still allowing a parser to set the I/O handler itself.
This commit is contained in:
parent
5113216583
commit
eaffde38c8
@ -398,6 +398,8 @@ int cli_has_level(struct appctx *appctx, int level)
|
||||
* it. It will possilbly leave st0 to CLI_ST_CALLBACK if the keyword needs to
|
||||
* have its own I/O handler called again. Most of the time, parsers will only
|
||||
* set st0 to CLI_ST_PRINT and put their message to be displayed into cli.msg.
|
||||
* If a keyword parser is NULL and an I/O handler is declared, the I/O handler
|
||||
* will automatically be used.
|
||||
*/
|
||||
static int cli_parse_request(struct appctx *appctx, char *line)
|
||||
{
|
||||
@ -458,11 +460,11 @@ static int cli_parse_request(struct appctx *appctx, char *line)
|
||||
appctx->st2 = 0;
|
||||
|
||||
kw = cli_find_kw(args);
|
||||
if (!kw || !kw->parse)
|
||||
if (!kw)
|
||||
return 0;
|
||||
|
||||
appctx->io_handler = kw->io_handler;
|
||||
if (kw->parse(args, appctx, kw->private) == 0 && appctx->io_handler) {
|
||||
if ((!kw->parse || kw->parse(args, appctx, kw->private) == 0) && appctx->io_handler) {
|
||||
appctx->st0 = CLI_ST_CALLBACK;
|
||||
appctx->io_release = kw->io_release;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user