diff options
Diffstat (limited to 'ospfd/ospf_routemap.c')
| -rw-r--r-- | ospfd/ospf_routemap.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/ospfd/ospf_routemap.c b/ospfd/ospf_routemap.c index 54009639fc..a15e605aca 100644 --- a/ospfd/ospf_routemap.c +++ b/ospfd/ospf_routemap.c @@ -70,11 +70,19 @@ static void ospf_route_map_update(const char *name) /* Keep old route-map. */ struct route_map *old = ROUTEMAP(red); - /* Update route-map. */ - ROUTEMAP(red) = - route_map_lookup_by_name( - ROUTEMAP_NAME(red)); - + if (!old) { + /* Route-map creation */ + /* Update route-map. */ + ROUTEMAP(red) = + route_map_lookup_by_name( + ROUTEMAP_NAME(red)); + + route_map_counter_increment( + ROUTEMAP(red)); + } else { + /* Route-map deletion */ + ROUTEMAP(red) = NULL; + } /* No update for this distribute type. */ if (old == NULL |
