diff options
Diffstat (limited to 'ospfd')
| -rw-r--r-- | ospfd/ospf_routemap.c | 34 | 
1 files changed, 20 insertions, 14 deletions
diff --git a/ospfd/ospf_routemap.c b/ospfd/ospf_routemap.c index a2b257fa..64822d61 100644 --- a/ospfd/ospf_routemap.c +++ b/ospfd/ospf_routemap.c @@ -43,28 +43,32 @@  void  ospf_route_map_update (char *name)  { +  struct ospf *ospf;    int type;    /* If OSPF instatnce does not exist, return right now. */ -  if (!ospf_top) +  ospf = ospf_lookup (); +  if (ospf == NULL)      return;    /* Update route-map */    for (type = 0; type <= ZEBRA_ROUTE_MAX; type++)      { -      if (ROUTEMAP_NAME (type) && strcmp (ROUTEMAP_NAME (type), name) == 0) +      if (ROUTEMAP_NAME (ospf, type) +	  && strcmp (ROUTEMAP_NAME (ospf, type), name) == 0)  	{  	  /* Keep old route-map. */ -	  struct route_map *old = ROUTEMAP (type); +	  struct route_map *old = ROUTEMAP (ospf, type);  	  /* Update route-map. */ -	  ROUTEMAP (type) = route_map_lookup_by_name (ROUTEMAP_NAME (type)); +	  ROUTEMAP (ospf, type) = +	    route_map_lookup_by_name (ROUTEMAP_NAME (ospf, type));  	  /* No update for this distribute type. */ -	  if (old == NULL && ROUTEMAP (type) == NULL) +	  if (old == NULL && ROUTEMAP (ospf, type) == NULL)  	    continue; -	  ospf_distribute_list_update (type); +	  ospf_distribute_list_update (ospf, type);  	}      }  } @@ -72,19 +76,21 @@ ospf_route_map_update (char *name)  void  ospf_route_map_event (route_map_event_t event, char *name)  { +  struct ospf *ospf;    int type;    /* If OSPF instatnce does not exist, return right now. */ -  if (!ospf_top) +  ospf = ospf_lookup (); +  if (ospf == NULL)      return;    /* Update route-map. */    for (type = 0; type <= ZEBRA_ROUTE_MAX; type++)      { -      if (ROUTEMAP_NAME (type) &&  ROUTEMAP (type) && -          !strcmp (ROUTEMAP_NAME (type), name)) +      if (ROUTEMAP_NAME (ospf, type) &&  ROUTEMAP (ospf, type) +	  && !strcmp (ROUTEMAP_NAME (ospf, type), name))          { -          ospf_distribute_list_update (type); +          ospf_distribute_list_update (ospf, type);          }      }  } @@ -750,8 +756,8 @@ DEFUN (set_metric_type,         "set metric-type (type-1|type-2)",         SET_STR         "Type of metric for destination routing protocol\n" -       "OSPF external type 1 metric\n" -       "OSPF external type 2 metric\n") +       "OSPF[6] external type 1 metric\n" +       "OSPF[6] external type 2 metric\n")  {    if (strcmp (argv[0], "1") == 0)      return ospf_route_set_add (vty, vty->index, "metric-type", "type-1"); @@ -780,8 +786,8 @@ ALIAS (no_set_metric_type,         NO_STR         SET_STR         "Type of metric for destination routing protocol\n" -       "OSPF external type 1 metric\n" -       "OSPF external type 2 metric\n") +       "OSPF[6] external type 1 metric\n" +       "OSPF[6] external type 2 metric\n")  /* Route-map init */  void  | 
