diff options
Diffstat (limited to 'openbsc/src/vty_interface_layer3.c')
-rw-r--r-- | openbsc/src/vty_interface_layer3.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c index 029f0c4ab..5aa24d3c2 100644 --- a/openbsc/src/vty_interface_layer3.c +++ b/openbsc/src/vty_interface_layer3.c @@ -51,6 +51,20 @@ struct cmd_node subscr_node = { 1, }; +/* Down vty node level. */ +DEFUN(subscr_node_exit, + subscr_node_exit_cmd, "exit", "Exit current mode and down to previous mode\n") +{ + switch (vty->node) { + case SUBSCR_NODE: + vty->node = VIEW_NODE; + subscr_put(vty->index); + vty->index = NULL; + break; + } + return CMD_SUCCESS; +} + static int dummy_config_write(struct vty *v) { return CMD_SUCCESS; @@ -542,6 +556,7 @@ int bsc_vty_init_extra(struct gsm_network *net) install_node(&subscr_node, dummy_config_write); install_default(SUBSCR_NODE); + install_element(SUBSCR_NODE, &subscr_node_exit_cmd); install_element(SUBSCR_NODE, &cfg_subscr_name_cmd); install_element(SUBSCR_NODE, &cfg_subscr_extension_cmd); install_element(SUBSCR_NODE, &cfg_subscr_authorized_cmd); |