]> git.puffer.fish Git - matthieu/frr.git/commitdiff
vtysh: fix entering configuration node in file-lock mode
authorIgor Ryzhov <iryzhov@nfware.com>
Wed, 27 Sep 2023 23:45:05 +0000 (02:45 +0300)
committerIgor Ryzhov <iryzhov@nfware.com>
Wed, 27 Sep 2023 23:45:05 +0000 (02:45 +0300)
When the config node is entered in file-lock mode, we should actually
remember it to correctly apply the workaround in `vtysh_exit`.
Otherwise, the file-lock mode is dropped once we exit any node one level
below the config node.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
vtysh/vtysh.c

index 2475ef0c8f6212aee1c2b30ee90ec350db010bfb..9c61146c2d86cf41b36adde207924cbbe2d36b45 100644 (file)
@@ -2379,12 +2379,23 @@ DEFUNSH(VTYSH_REALLYALL, vtysh_disable, vtysh_disable_cmd, "disable",
 }
 
 DEFUNSH(VTYSH_REALLYALL, vtysh_config_terminal, vtysh_config_terminal_cmd,
-       "configure [terminal [file-lock]]",
+       "configure [terminal]",
+       "Configuration from vty interface\n"
+       "Configuration terminal\n")
+{
+       vty->node = CONFIG_NODE;
+       return CMD_SUCCESS;
+}
+
+DEFUNSH(VTYSH_REALLYALL, vtysh_config_terminal_file_lock,
+       vtysh_config_terminal_file_lock_cmd,
+       "configure terminal file-lock",
        "Configuration from vty interface\n"
        "Configuration terminal\n"
        "Configuration with locked datastores\n")
 {
        vty->node = CONFIG_NODE;
+       vty->vtysh_file_locked = true;
        return CMD_SUCCESS;
 }
 
@@ -5021,6 +5032,7 @@ void vtysh_init_vty(void)
        if (!user_mode)
                install_element(VIEW_NODE, &vtysh_enable_cmd);
        install_element(ENABLE_NODE, &vtysh_config_terminal_cmd);
+       install_element(ENABLE_NODE, &vtysh_config_terminal_file_lock_cmd);
        install_element(ENABLE_NODE, &vtysh_disable_cmd);
 
        /* "exit" command. */