From f948dbc442c44c402d6559bdd746f5ef8d01fff2 Mon Sep 17 00:00:00 2001 From: "Andreas.Eversberg" Date: Thu, 10 Nov 2011 23:09:35 +0100 Subject: vty: Fixed vty_down_level to move down from config nodes When using ^D at config nodes above the CONFIG_NODE, the go_parent_cb function is used to go down by one node. This is equivalent to "exit" command. Written-by: Andreas.Eversberg Signed-off-by: Sylvain Munaut --- src/vty/vty.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/vty/vty.c') diff --git a/src/vty/vty.c b/src/vty/vty.c index 5f5e6a4c..da035969 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -802,9 +802,11 @@ static void vty_backward_word(struct vty *vty) static void vty_down_level(struct vty *vty) { vty_out(vty, "%s", VTY_NEWLINE); - /* FIXME: we need to call the exit function of the specific node - * in question, not this generic one that doesn't know all nodes */ - (*config_exit_cmd.func) (NULL, vty, 0, NULL); + /* call the exit function of the specific node */ + if (vty->node > CONFIG_NODE) + vty_go_parent(vty); + else + (*config_exit_cmd.func) (NULL, vty, 0, NULL); vty_prompt(vty); vty->cp = 0; } -- cgit v1.2.3