]> git.puffer.fish Git - matthieu/frr.git/commitdiff
quagga errors parsing a valid config
authorDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 16 Oct 2015 20:51:38 +0000 (20:51 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 16 Oct 2015 20:51:38 +0000 (20:51 +0000)
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
lib/command.c

index f6cb9dc8f14dd397611d3f0b056bf524f202f3bd..5e8259dd39118a3f4ce216c4b9b149a66788efca 100644 (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);
       }
   }