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 <jolly@eversberg.eu>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
diff --git a/src/vty/vty.c b/src/vty/vty.c
index 5f5e6a4..da03596 100644
--- a/src/vty/vty.c
+++ b/src/vty/vty.c
@@ -802,9 +802,11 @@
 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;
 }