diff options
author | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-08-22 22:05:04 +0200 |
---|---|---|
committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-08-23 18:10:12 +0200 |
commit | 61a484a90a4a7c0ddfabc5425261c1ed76976c5c (patch) | |
tree | 8cebc274354cab8a40a6f575547ee893fabc8c0c /vtysh | |
parent | Merge pull request #2890 from patrasar/Fix_2847 (diff) | |
download | frr-61a484a90a4a7c0ddfabc5425261c1ed76976c5c.tar.xz frr-61a484a90a4a7c0ddfabc5425261c1ed76976c5c.zip |
bgpd: fix rpki exit command
If a command returns a nonzero exit status and VTYSH has a corresponding
command, VTYSH will skip executing its own version. If this happens in a
command that changes CLI nodes we get node desynchronization.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'vtysh')
-rw-r--r-- | vtysh/vtysh.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index ef4d1a083..c249115fd 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -1435,24 +1435,6 @@ DEFUNSH(VTYSH_BGPD, return CMD_SUCCESS; } -DEFUNSH(VTYSH_BGPD, - rpki_exit, - rpki_exit_cmd, - "exit", - "Exit current mode and down to previous mode\n") -{ - vty->node = CONFIG_NODE; - return CMD_SUCCESS; -} - -DEFUNSH(VTYSH_BGPD, - rpki_quit, - rpki_quit_cmd, - "quit", - "Exit current mode and down to previous mode\n") -{ - return rpki_exit(self, vty, argc, argv); -} #endif DEFUNSH(VTYSH_BGPD, address_family_evpn, address_family_evpn_cmd, @@ -1790,6 +1772,7 @@ static int vtysh_exit(struct vty *vty) case VTY_NODE: case KEYCHAIN_NODE: case BFD_NODE: + case RPKI_NODE: vtysh_execute("end"); vtysh_execute("configure terminal"); vty->node = CONFIG_NODE; @@ -1883,7 +1866,23 @@ DEFUNSH(VTYSH_BGPD, exit_vnc_config, exit_vnc_config_cmd, "exit-vnc", || vty->node == BGP_VNC_L2_GROUP_NODE) vty->node = BGP_NODE; return CMD_SUCCESS; + +} + +#if defined(HAVE_RPKI) +DEFUNSH(VTYSH_BGPD, rpki_exit, rpki_exit_cmd, "exit", + "Exit current mode and down to previous mode\n") +{ + vtysh_exit(vty); + return CMD_SUCCESS; +} + +DEFUNSH(VTYSH_BGPD, rpki_quit, rpki_quit_cmd, "quit", + "Exit current mode and down to previous mode\n") +{ + return rpki_exit(self, vty, argc, argv); } +#endif /* HAVE_RPKI */ DEFUNSH(VTYSH_PIMD|VTYSH_ZEBRA, exit_vrf_config, exit_vrf_config_cmd, "exit-vrf", "Exit from VRF configuration mode\n") |