diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2021-04-06 21:09:50 +0300 |
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2021-04-06 23:18:47 +0300 |
| commit | a0145975e3aff120df7edbd3cd76cebadbe71940 (patch) | |
| tree | 944ab217acd1ca6d1c168f88672fb3919d59664b /lib/filter.c | |
| parent | 451e6dcfc7808be39f838c123ddf2d399a8a9564 (diff) | |
lib: fix usage of operational data in CLI
CLI must never use operational data, because this won't work in
transactional mode. Rework search for prefix-list/access-list entries
using only candidate config.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'lib/filter.c')
| -rw-r--r-- | lib/filter.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/lib/filter.c b/lib/filter.c index 83423ba321..ab62e95fb6 100644 --- a/lib/filter.c +++ b/lib/filter.c @@ -469,59 +469,6 @@ void access_list_filter_add(struct access_list *access, host A single host address */ -struct filter *filter_lookup_cisco(struct access_list *access, - struct filter *mnew) -{ - struct filter *mfilter; - struct filter_cisco *filter; - struct filter_cisco *new; - - new = &mnew->u.cfilter; - - for (mfilter = access->head; mfilter; mfilter = mfilter->next) { - filter = &mfilter->u.cfilter; - - if (filter->extended) { - if (mfilter->type == mnew->type - && filter->addr.s_addr == new->addr.s_addr - && filter->addr_mask.s_addr == new->addr_mask.s_addr - && filter->mask.s_addr == new->mask.s_addr - && filter->mask_mask.s_addr - == new->mask_mask.s_addr) - return mfilter; - } else { - if (mfilter->type == mnew->type - && filter->addr.s_addr == new->addr.s_addr - && filter->addr_mask.s_addr - == new->addr_mask.s_addr) - return mfilter; - } - } - - return NULL; -} - -struct filter *filter_lookup_zebra(struct access_list *access, - struct filter *mnew) -{ - struct filter *mfilter; - struct filter_zebra *filter; - struct filter_zebra *new; - - new = &mnew->u.zfilter; - - for (mfilter = access->head; mfilter; mfilter = mfilter->next) { - filter = &mfilter->u.zfilter; - - if (filter->exact == new->exact - && mfilter->type == mnew->type) { - if (prefix_same(&filter->prefix, &new->prefix)) - return mfilter; - } - } - return NULL; -} - static void config_write_access_zebra(struct vty *, struct filter *); static void config_write_access_cisco(struct vty *, struct filter *); |
