From: Donald Sharp Date: Wed, 4 Oct 2017 21:46:29 +0000 (-0400) Subject: vtysh: Fix ordering of multicast boundary command X-Git-Tag: frr-4.0-dev~238^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=a3c1db5e1dae10809cb72c8710eb5a99bf253e70;p=mirror%2Ffrr.git vtysh: Fix ordering of multicast boundary command The multicast boundary command must be shown after the `ip pim sm` command. So add a new config_add_line_end and make it the last one. Signed-off-by: Donald Sharp --- diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c index d7e79d6b2c..277429a779 100644 --- a/vtysh/vtysh_config.c +++ b/vtysh/vtysh_config.c @@ -131,6 +131,20 @@ static void config_add_line_uniq(struct list *config, const char *line) listnode_add_sort(config, XSTRDUP(MTYPE_VTYSH_CONFIG_LINE, line)); } +/* + * I want to explicitly move this command to the end of the line + */ +static void config_add_line_end(struct list *config, const char *line) +{ + struct listnode *node; + void *item = XSTRDUP(MTYPE_VTYSH_CONFIG_LINE, line); + + listnode_add(config, item); + node = listnode_lookup(config, item); + if (node) + listnode_move_to_tail(config, node); +} + void vtysh_config_parse_line(void *arg, const char *line) { char c; @@ -161,6 +175,10 @@ void vtysh_config_parse_line(void *arg, const char *line) == 0) { config_add_line(config->line, line); config->index = LINK_PARAMS_NODE; + } else if (strncmp(line, + " ip multicast boundary", + strlen(" ip multicast boundary")) == 0) { + config_add_line_end(config->line, line); } else if (config->index == LINK_PARAMS_NODE && strncmp(line, " exit-link-params", strlen(" exit"))