diff options
Diffstat (limited to 'bgpd/bgp_clist.c')
| -rw-r--r-- | bgpd/bgp_clist.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/bgpd/bgp_clist.c b/bgpd/bgp_clist.c index 7b64f349d2..b9a5784799 100644 --- a/bgpd/bgp_clist.c +++ b/bgpd/bgp_clist.c @@ -36,9 +36,9 @@ #include "bgpd/bgp_regex.h" #include "bgpd/bgp_clist.h" -static uint32_t bgp_clist_hash_key_community_list(void *data) +static uint32_t bgp_clist_hash_key_community_list(const void *data) { - struct community_list *cl = data; + struct community_list *cl = (struct community_list *) data; if (cl->name_hash) return cl->name_hash; @@ -1049,8 +1049,10 @@ int lcommunity_list_set(struct community_list_handler *ch, const char *name, /* Do not put duplicated community entry. */ if (community_list_dup_check(list, entry)) community_entry_free(entry); - else + else { community_list_entry_add(list, entry); + route_map_notify_dependencies(name, RMAP_EVENT_LLIST_ADDED); + } return 0; } @@ -1075,6 +1077,7 @@ int lcommunity_list_unset(struct community_list_handler *ch, const char *name, /* Delete all of entry belongs to this community-list. */ if (!str) { community_list_delete(cm, list); + route_map_notify_dependencies(name, RMAP_EVENT_LLIST_DELETED); return 0; } @@ -1100,6 +1103,7 @@ int lcommunity_list_unset(struct community_list_handler *ch, const char *name, return COMMUNITY_LIST_ERR_CANT_FIND_LIST; community_list_entry_delete(cm, list, entry); + route_map_notify_dependencies(name, RMAP_EVENT_LLIST_DELETED); return 0; } |
