diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2021-04-06 21:26:09 +0300 |
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2021-04-06 23:18:47 +0300 |
| commit | ad2b07055c56c2293b2848194403e133208ca700 (patch) | |
| tree | 02a3bf80b20dfaedd6cfcc0dfceac5ee7fd5e1ef /lib/filter_cli.c | |
| parent | a0145975e3aff120df7edbd3cd76cebadbe71940 (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.c | 14 |
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( |
