]> git.puffer.fish Git - matthieu/frr.git/commitdiff
vtysh: don't install "enable" command in user mode
authorIgor Ryzhov <iryzhov@nfware.com>
Fri, 23 Jul 2021 15:38:20 +0000 (18:38 +0300)
committerIgor Ryzhov <iryzhov@nfware.com>
Sun, 25 Jul 2021 10:08:04 +0000 (13:08 +0300)
Recent change in d1b287e only fixed the problem for 3-letter words.

We were still displaying error for longer words starting with "ena":
```
nfware> enac
% Command not allowed: enable
nfware> enad
% Command not allowed: enable
nfware> enaena
% Command not allowed: enable
```

If we don't allow "enable" command in user mode, why add it at all?

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

index a8906e72aea1c180db1a3833f5b3633407c2b48d..5cee0aaa3f4444c36aea295c9d6f9845abbb1bfb 100644 (file)
@@ -478,25 +478,6 @@ static int vtysh_execute_func(const char *line, int pager)
        if (vline == NULL)
                return CMD_SUCCESS;
 
-       if (user_mode) {
-               bool allow = true;
-               if (strncmp("en", vector_slot(vline, 0), 2) == 0) {
-                       if (strlen(line) >= 3) {
-                               if (strncmp("ena", vector_slot(vline, 0), 3)
-                                   == 0)
-                                       allow = false;
-                       } else
-                               allow = false;
-
-                       if (!allow) {
-                               cmd_free_strvec(vline);
-                               vty_out(vty,
-                                       "%% Command not allowed: enable\n");
-                               return CMD_WARNING;
-                       }
-               }
-       }
-
        if (vtysh_add_timestamp && strncmp(line, "exit", 4)) {
                char ts[48];
 
@@ -4523,7 +4504,8 @@ void vtysh_init_vty(void)
 
        /* vtysh */
 
-       install_element(VIEW_NODE, &vtysh_enable_cmd);
+       if (!user_mode)
+               install_element(VIEW_NODE, &vtysh_enable_cmd);
        install_element(ENABLE_NODE, &vtysh_config_terminal_cmd);
        install_element(ENABLE_NODE, &vtysh_disable_cmd);