quagga errors parsing a valid config

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Daniel Walton 2015-10-16 20:51:38 +00:00
parent 9229d914dd
commit fd715b78d9

View File

@ -2805,26 +2805,30 @@ command_config_read_one_line (struct vty *vty, struct cmd_element **cmd, int use
// Climb the tree and try the command again at each node
if (!(use_daemon && ret == CMD_SUCCESS_DAEMON) &&
ret != CMD_SUCCESS && ret != CMD_WARNING &&
ret != CMD_ERR_NOTHING_TODO && vty->node != CONFIG_NODE) {
!(!use_daemon && ret == CMD_ERR_NOTHING_TODO) &&
ret != CMD_SUCCESS &&
ret != CMD_WARNING &&
vty->node != CONFIG_NODE) {
saved_node = vty->node;
while (!(use_daemon && ret == CMD_SUCCESS_DAEMON) &&
ret != CMD_SUCCESS && ret != CMD_WARNING &&
ret != CMD_ERR_NOTHING_TODO && vty->node != CONFIG_NODE) {
!(!use_daemon && ret == CMD_ERR_NOTHING_TODO) &&
ret != CMD_SUCCESS &&
ret != CMD_WARNING &&
vty->node != CONFIG_NODE) {
vty->node = node_parent(vty->node);
ret = cmd_execute_command_strict (vline, vty, NULL);
ret = cmd_execute_command_strict (vline, vty, cmd);
}
// If climbing the tree did not work then ignore the command and
// stay at the same node
if (!(use_daemon && ret == CMD_SUCCESS_DAEMON) &&
ret != CMD_SUCCESS && ret != CMD_WARNING &&
ret != CMD_ERR_NOTHING_TODO)
!(!use_daemon && ret == CMD_ERR_NOTHING_TODO) &&
ret != CMD_SUCCESS &&
ret != CMD_WARNING)
{
vty->node = saved_node;
memcpy(vty->error_buf, vty->buf, VTY_BUFSIZ);
}
}