diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2019-11-21 00:19:36 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-11-21 10:48:02 +0700 |
commit | 4abda9ea26403e24b2d91b83a1e4c81f5fb4b003 (patch) | |
tree | 8a62e78b7a99b884f1b9ffeaf5f52375a2fa0bdb /src | |
parent | 75c242e6a265b00e48fd3224e0af90025106caa7 (diff) |
logging/vty: fix: actually ignore deprecated logging commands
We shall not prevent programs from starting if their configuration
files contain deprecated 'logging level ...' commands. Just print
a warning and return CMD_SUCCESS instead of CMD_WARNING.
While writing a unit test, another funny bug has been uncovered.
Parsing of a deprecated command indeed triggers a deprecation
warning, originated from libosmovty's log_deprecated_func().
This function simply calls vty_out(), but...
Since the invocation of the vty_out() happens _before_ the VTY
is initialized, the process is actually writing that warning
to its own stdin! Most likely, because we use talloc_zero()
to allocate a new instance of struct 'vty'.
As a side effect, the evil warning magically appears in the output
of 'make check', breaking the test statistics. Let's work around
this bug for now by redirecting stdin to /dev/null.
Change-Id: Ia934581410cd41594791d4e14ee74c16abe1009a
Fixes: Ic9c1b566ec4a459f03e6319cf369691903cf9d00
Diffstat (limited to 'src')
-rw-r--r-- | src/vty/logging_vty.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index b4c3776e..6d908d9e 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -998,7 +998,7 @@ static int config_write_log(struct vty *vty) static int log_deprecated_func(struct cmd_element *cmd, struct vty *vty, int argc, const char *argv[]) { vty_out(vty, "%% Ignoring deprecated '%s'%s", cmd->string, VTY_NEWLINE); - return CMD_WARNING; + return CMD_SUCCESS; /* Otherwise the process would terminate */ } void logging_vty_add_deprecated_subsys(void *ctx, const char *name) |