From: Igor Ryzhov Date: Tue, 6 Apr 2021 18:26:09 +0000 (+0300) Subject: lib: fix deletion of empty prefix-lists X-Git-Tag: base_8.0~146^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=ad2b07055c56c2293b2848194403e133208ca700;p=mirror%2Ffrr.git 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 --- 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(