Skip to content

Commit

Permalink
vtysh: use parent_node for vtysh_exit()
Browse files Browse the repository at this point in the history
Cleaning up the whole mess of "exit" and "quit" commands that follows is
left for a rainy day :(

Signed-off-by: David Lamparter <equinox@diac24.net>
  • Loading branch information
eqvinox committed Apr 2, 2020
1 parent f58fae1 commit 22d8939
Showing 1 changed file with 10 additions and 76 deletions.
86 changes: 10 additions & 76 deletions vtysh/vtysh.c
Original file line number Diff line number Diff line change
Expand Up @@ -1992,85 +1992,19 @@ DEFUNSH(VTYSH_REALLYALL, vtysh_config_terminal, vtysh_config_terminal_cmd,

static int vtysh_exit(struct vty *vty)
{
switch (vty->node) {
case VIEW_NODE:
case ENABLE_NODE:
struct cmd_node *cnode = vector_lookup(cmdvec, vty->node);

if (vty->node == VIEW_NODE || vty->node == ENABLE_NODE)
exit(0);
break;
case CONFIG_NODE:
vty->node = ENABLE_NODE;
break;
case INTERFACE_NODE:
case PW_NODE:
case VRF_NODE:
case NH_GROUP_NODE:
case ZEBRA_NODE:
case BGP_NODE:
case RIP_NODE:
case RIPNG_NODE:
case OSPF_NODE:
case OSPF6_NODE:
case EIGRP_NODE:
case BABEL_NODE:
case LDP_NODE:
case LDP_L2VPN_NODE:
case ISIS_NODE:
case OPENFABRIC_NODE:
case RMAP_NODE:
case PBRMAP_NODE:
case VTY_NODE:
case KEYCHAIN_NODE:
case BFD_NODE:
case RPKI_NODE:
if (cnode->node_exit)
cnode->node_exit(vty);
if (cnode->parent_node)
vty->node = cnode->parent_node;

if (vty->node == CONFIG_NODE) {
/* resync in case one of the daemons is somewhere else */
vtysh_execute("end");
vtysh_execute("configure");
vty->node = CONFIG_NODE;
break;
case BGP_VPNV4_NODE:
case BGP_VPNV6_NODE:
case BGP_IPV4_NODE:
case BGP_IPV4M_NODE:
case BGP_IPV4L_NODE:
case BGP_IPV6_NODE:
case BGP_IPV6M_NODE:
case BGP_IPV6L_NODE:
case BGP_FLOWSPECV4_NODE:
case BGP_FLOWSPECV6_NODE:
case BGP_VRF_POLICY_NODE:
case BGP_EVPN_NODE:
case BGP_VNC_DEFAULTS_NODE:
case BGP_VNC_NVE_GROUP_NODE:
case BGP_VNC_L2_GROUP_NODE:
case BMP_NODE:
vty->node = BGP_NODE;
break;
case BGP_EVPN_VNI_NODE:
vty->node = BGP_EVPN_NODE;
break;
case LDP_IPV4_NODE:
case LDP_IPV6_NODE:
vty->node = LDP_NODE;
break;
case LDP_IPV4_IFACE_NODE:
vty->node = LDP_IPV4_NODE;
break;
case LDP_IPV6_IFACE_NODE:
vty->node = LDP_IPV6_NODE;
break;
case LDP_PSEUDOWIRE_NODE:
vty->node = LDP_L2VPN_NODE;
break;
case KEYCHAIN_KEY_NODE:
vty->node = KEYCHAIN_NODE;
break;
case LINK_PARAMS_NODE:
vty->node = INTERFACE_NODE;
break;
case BFD_PEER_NODE:
vty->node = BFD_NODE;
break;
default:
break;
}
return CMD_SUCCESS;
}
Expand Down

0 comments on commit 22d8939

Please sign in to comment.