summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vty/command.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/src/vty/command.c b/src/vty/command.c
index 33862c0d..52c71913 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -2111,12 +2111,10 @@ int
cmd_execute_command(vector vline, struct vty *vty, struct cmd_element **cmd,
int vtysh)
{
- int ret, saved_ret, tried = 0;
+ int ret;
enum node_type onode;
- void *oindex;
onode = vty->node;
- oindex = vty->index;
if (cmd_try_do_shortcut(vty->node, vector_slot(vline, 0))) {
vector shifted_vline;
@@ -2139,29 +2137,7 @@ cmd_execute_command(vector vline, struct vty *vty, struct cmd_element **cmd,
return ret;
}
- saved_ret = ret = cmd_execute_command_real(vline, vty, cmd);
-
- if (vtysh)
- return saved_ret;
-
- /* Go to parent for config nodes to attempt to find the right command */
- while (ret != CMD_SUCCESS && ret != CMD_WARNING
- && is_config_child(vty)) {
- vty_go_parent(vty);
- ret = cmd_execute_command_real(vline, vty, cmd);
- tried = 1;
- if (ret == CMD_SUCCESS || ret == CMD_WARNING) {
- /* succesfull command, leave the node as is */
- return ret;
- }
- }
- /* no command succeeded, reset the vty to the original node and
- return the error for this node */
- if (tried) {
- vty->node = onode;
- vty->index = oindex;
- }
- return saved_ret;
+ return cmd_execute_command_real(vline, vty, cmd);
}
/* Execute command by argument readline. */