From ad2b07055c56c2293b2848194403e133208ca700 Mon Sep 17 00:00:00 2001 From: Igor Ryzhov Date: Tue, 6 Apr 2021 21:26:09 +0300 Subject: [PATCH] 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 --- lib/filter_cli.c | 14 ++++++++++++-- 1 file 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( -- 2.39.5