Merge pull request #2202 from dslicenc/bgp-neigh-auto-complete

bgpd: fix auto-completion for neighbors and peer-groups
This commit is contained in:
Lou Berger 2018-05-11 08:49:17 -04:00 committed by GitHub
commit d2b349f9c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12153,7 +12153,6 @@ static void bgp_ac_neighbor(vector comps, struct cmd_token *token)
{
struct bgp *bgp;
struct peer *peer;
struct peer_group *group;
struct listnode *lnbgp, *lnpeer;
for (ALL_LIST_ELEMENTS_RO(bm->bgp, lnbgp, bgp)) {
@ -12177,11 +12176,6 @@ static void bgp_ac_neighbor(vector comps, struct cmd_token *token)
vector_set(comps, XSTRDUP(MTYPE_COMPLETION, name));
}
if (token->type == VARIABLE_TKN)
for (ALL_LIST_ELEMENTS_RO(bgp->group, lnpeer, group))
vector_set(comps, XSTRDUP(MTYPE_COMPLETION,
group->name));
}
}
@ -12191,9 +12185,27 @@ static const struct cmd_variable_handler bgp_var_neighbor[] = {
{.varname = "peer", .completions = bgp_ac_neighbor},
{.completions = NULL}};
static void bgp_ac_peergroup(vector comps, struct cmd_token *token)
{
struct bgp *bgp;
struct peer_group *group;
struct listnode *lnbgp, *lnpeer;
for (ALL_LIST_ELEMENTS_RO(bm->bgp, lnbgp, bgp)) {
for (ALL_LIST_ELEMENTS_RO(bgp->group, lnpeer, group))
vector_set(comps, XSTRDUP(MTYPE_COMPLETION,
group->name));
}
}
static const struct cmd_variable_handler bgp_var_peergroup[] = {
{.tokenname = "PGNAME", .completions = bgp_ac_peergroup},
{.completions = NULL} };
void bgp_vty_init(void)
{
cmd_variable_handler_register(bgp_var_neighbor);
cmd_variable_handler_register(bgp_var_peergroup);
/* Install bgp top node. */
install_node(&bgp_node, bgp_config_write);