diff options
Diffstat (limited to 'bgpd/bgp_conditional_adv.c')
| -rw-r--r-- | bgpd/bgp_conditional_adv.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/bgpd/bgp_conditional_adv.c b/bgpd/bgp_conditional_adv.c index 0731adcb84..b5cd1b52b7 100644 --- a/bgpd/bgp_conditional_adv.c +++ b/bgpd/bgp_conditional_adv.c @@ -47,10 +47,11 @@ bgp_check_rmap_prefixes_in_bgp_table(struct bgp_table *table, RESET_FLAG(dummy_attr.rmap_change_flags); - ret = route_map_apply(rmap, dest_p, RMAP_BGP, &path); + ret = route_map_apply(rmap, dest_p, &path); if (ret != RMAP_PERMITMATCH) bgp_attr_flush(&dummy_attr); else { + bgp_dest_unlock_node(dest); if (BGP_DEBUG(update, UPDATE_OUT)) zlog_debug( "%s: Condition map routes present in BGP table", @@ -112,7 +113,7 @@ static void bgp_conditional_adv_routes(struct peer *peer, afi_t afi, RESET_FLAG(dummy_attr.rmap_change_flags); - if (route_map_apply(rmap, dest_p, RMAP_BGP, &path) + if (route_map_apply(rmap, dest_p, &path) != RMAP_PERMITMATCH) { bgp_attr_flush(&dummy_attr); continue; |
