diff options
Diffstat (limited to 'lib/vty.c')
| -rw-r--r-- | lib/vty.c | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -90,6 +90,7 @@ static u_char restricted_mode = 0; /* Integrated configuration file path */ char integrate_default[] = SYSCONFDIR INTEGRATE_DEFAULT_CONFIG; +static int do_log_commands = 0; /* VTY standard output function. */ int @@ -402,12 +403,13 @@ vty_command (struct vty *vty, char *buf) int ret; vector vline; const char *protocolname; - char *cp; + char *cp = NULL; /* * Log non empty command lines */ - cp = buf; + if (do_log_commands) + cp = buf; if (cp != NULL) { /* Skip white spaces. */ @@ -435,7 +437,7 @@ vty_command (struct vty *vty, char *buf) snprintf(prompt_str, sizeof(prompt_str), cmd_prompt (vty->node), vty_str); /* now log the command */ - zlog(NULL, LOG_NOTICE, "%s%s", prompt_str, buf); + zlog(NULL, LOG_ERR, "%s%s", prompt_str, buf); } /* Split readline string up into the vector */ vline = cmd_make_strvec (buf); @@ -2957,6 +2959,17 @@ DEFUN (show_history, return CMD_SUCCESS; } +/* vty login. */ +DEFUN (log_commands, + log_commands_cmd, + "log commands", + "Logging control\n" + "Log all commands (can't be unset without restart)\n") +{ + do_log_commands = 1; + return CMD_SUCCESS; +} + /* Display current configuration. */ static int vty_config_write (struct vty *vty) @@ -2988,7 +3001,10 @@ vty_config_write (struct vty *vty) else vty_out (vty, " anonymous restricted%s", VTY_NEWLINE); } - + + if (do_log_commands) + vty_out (vty, "log commands%s", VTY_NEWLINE); + vty_out (vty, "!%s", VTY_NEWLINE); return CMD_SUCCESS; @@ -3123,6 +3139,7 @@ vty_init (struct thread_master *master_thread) install_element (CONFIG_NODE, &service_advanced_vty_cmd); install_element (CONFIG_NODE, &no_service_advanced_vty_cmd); install_element (CONFIG_NODE, &show_history_cmd); + install_element (CONFIG_NODE, &log_commands_cmd); install_element (ENABLE_NODE, &terminal_monitor_cmd); install_element (ENABLE_NODE, &terminal_no_monitor_cmd); install_element (ENABLE_NODE, &no_terminal_monitor_cmd); |
