summaryrefslogtreecommitdiff
path: root/lib/filter_cli.c
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2021-04-06 21:26:09 +0300
committerIgor Ryzhov <iryzhov@nfware.com>2021-04-06 23:18:47 +0300
commitad2b07055c56c2293b2848194403e133208ca700 (patch)
tree02a3bf80b20dfaedd6cfcc0dfceac5ee7fd5e1ef /lib/filter_cli.c
parenta0145975e3aff120df7edbd3cd76cebadbe71940 (diff)
lib: fix deletion of empty prefix-lists
We delete the prefix-list when its last entry is deleted, but the check is missed when we delete the description. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'lib/filter_cli.c')
-rw-r--r--lib/filter_cli.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/filter_cli.c b/lib/filter_cli.c
index 02dfd7f8b2..f42290dc19 100644
--- a/lib/filter_cli.c
+++ b/lib/filter_cli.c
@@ -1462,13 +1462,18 @@ DEFPY_YANG(
ACCESS_LIST_REMARK_STR)
{
char xpath[XPATH_MAXLEN];
+ int rv;
snprintf(xpath, sizeof(xpath),
"/frr-filter:lib/prefix-list[type='ipv4'][name='%s']/remark",
name);
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
- return nb_cli_apply_changes(vty, NULL);
+ rv = nb_cli_apply_changes(vty, NULL);
+ if (rv == CMD_SUCCESS)
+ return plist_remove_if_empty(vty, "ipv4", name);
+
+ return rv;
}
ALIAS(
@@ -1658,13 +1663,18 @@ DEFPY_YANG(
ACCESS_LIST_REMARK_STR)
{
char xpath[XPATH_MAXLEN];
+ int rv;
snprintf(xpath, sizeof(xpath),
"/frr-filter:lib/prefix-list[type='ipv6'][name='%s']/remark",
name);
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
- return nb_cli_apply_changes(vty, NULL);
+ rv = nb_cli_apply_changes(vty, NULL);
+ if (rv == CMD_SUCCESS)
+ return plist_remove_if_empty(vty, "ipv6", name);
+
+ return rv;
}
ALIAS(