summaryrefslogtreecommitdiff
path: root/lib/command.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2019-01-18 23:23:45 -0200
committerRenato Westphal <renato@opensourcerouting.org>2019-01-19 16:07:30 -0200
commitcf09d3ca45fa00c7474e5019534a339f48989c33 (patch)
tree52a38d87d145ed54d4c300321422ef927c3998ef /lib/command.c
parent41e195d47732fab800ce4f8bfd0b88561d2fab74 (diff)
lib: simplify detection of when the user is leaving the CLI config mode
We can make use of the vty->config variable to know when the CLI user is in the configuration mode or not. This is much simpler than obtaining this information from the vty node, and also a more robust solution (the three switch statements below, for example, were out of sync). Also, fix a bug where vty->config wasn't being unset in the vty_config_exit() function (bug introduced by commit f344c66ea3). Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'lib/command.c')
-rw-r--r--lib/command.c56
1 files changed, 1 insertions, 55 deletions
diff --git a/lib/command.c b/lib/command.c
index 7d20bae62a..05ccb52ab5 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -1535,63 +1535,9 @@ DEFUN (config_end,
"end",
"End current mode and change to enable mode.\n")
{
- switch (vty->node) {
- case VIEW_NODE:
- case ENABLE_NODE:
- /* Nothing to do. */
- break;
- case CONFIG_NODE:
- case INTERFACE_NODE:
- case PW_NODE:
- case LOGICALROUTER_NODE:
- case VRF_NODE:
- case NH_GROUP_NODE:
- case ZEBRA_NODE:
- case RIP_NODE:
- case RIPNG_NODE:
- case EIGRP_NODE:
- case BABEL_NODE:
- case BGP_NODE:
- case BGP_VRF_POLICY_NODE:
- case BGP_VNC_DEFAULTS_NODE:
- case BGP_VNC_NVE_GROUP_NODE:
- case BGP_VNC_L2_GROUP_NODE:
- case BGP_VPNV4_NODE:
- case BGP_VPNV6_NODE:
- case BGP_FLOWSPECV4_NODE:
- case BGP_FLOWSPECV6_NODE:
- case BGP_IPV4_NODE:
- case BGP_IPV4M_NODE:
- case BGP_IPV4L_NODE:
- case BGP_IPV6_NODE:
- case BGP_IPV6M_NODE:
- case BGP_EVPN_NODE:
- case BGP_EVPN_VNI_NODE:
- case BGP_IPV6L_NODE:
- case RMAP_NODE:
- case PBRMAP_NODE:
- case OSPF_NODE:
- case OSPF6_NODE:
- case LDP_NODE:
- case LDP_IPV4_NODE:
- case LDP_IPV6_NODE:
- case LDP_IPV4_IFACE_NODE:
- case LDP_IPV6_IFACE_NODE:
- case LDP_L2VPN_NODE:
- case LDP_PSEUDOWIRE_NODE:
- case ISIS_NODE:
- case OPENFABRIC_NODE:
- case KEYCHAIN_NODE:
- case KEYCHAIN_KEY_NODE:
- case VTY_NODE:
- case LINK_PARAMS_NODE:
- case BFD_NODE:
- case BFD_PEER_NODE:
+ if (vty->config) {
vty_config_exit(vty);
vty->node = ENABLE_NODE;
- break;
- default:
- break;
}
return CMD_SUCCESS;