Browse Source

ospf6_lsdb: trivial, make it clear that showfunc is set before deref.

Paul Jakma 4 years ago
parent
commit
7bef33cbf5
2 changed files with 25 additions and 15 deletions
  1. 17 10
      ospf6d/ospf6_lsdb.c
  2. 8 5
      ospf6d/ospf6_lsdb.h

+ 17 - 10
ospf6d/ospf6_lsdb.c

@@ -485,22 +485,29 @@ ospf6_lsdb_maxage_remover (struct ospf6_lsdb *lsdb)
 }
 
 void
-ospf6_lsdb_show (struct vty *vty, int level,
+ospf6_lsdb_show (struct vty *vty, enum ospf_lsdb_show_level level,
                  u_int16_t *type, u_int32_t *id, u_int32_t *adv_router,
                  struct ospf6_lsdb *lsdb)
 {
   struct ospf6_lsa *lsa;
   void (*showfunc) (struct vty *, struct ospf6_lsa *) = NULL;
 
-  if (level == OSPF6_LSDB_SHOW_LEVEL_NORMAL)
-    showfunc = ospf6_lsa_show_summary;
-  else if (level == OSPF6_LSDB_SHOW_LEVEL_DETAIL)
-    showfunc = ospf6_lsa_show;
-  else if (level == OSPF6_LSDB_SHOW_LEVEL_INTERNAL)
-    showfunc = ospf6_lsa_show_internal;
-  else if (level == OSPF6_LSDB_SHOW_LEVEL_DUMP)
-    showfunc = ospf6_lsa_show_dump;
-
+  switch (level)
+  {
+    case OSPF6_LSDB_SHOW_LEVEL_DETAIL:
+      showfunc = ospf6_lsa_show;
+      break;
+    case OSPF6_LSDB_SHOW_LEVEL_INTERNAL:
+      showfunc = ospf6_lsa_show_internal;
+      break;
+    case OSPF6_LSDB_SHOW_LEVEL_DUMP:
+      showfunc = ospf6_lsa_show_dump;
+      break;
+    case OSPF6_LSDB_SHOW_LEVEL_NORMAL:
+    default:
+      showfunc = ospf6_lsa_show_summary;
+  }
+  
   if (type && id && adv_router)
     {
       lsa = ospf6_lsdb_lookup (*type, *id, *adv_router, lsdb);

+ 8 - 5
ospf6d/ospf6_lsdb.h

@@ -66,12 +66,15 @@ extern struct ospf6_lsa *ospf6_lsdb_type_next (u_int16_t type,
 extern void ospf6_lsdb_remove_all (struct ospf6_lsdb *lsdb);
 extern void ospf6_lsdb_lsa_unlock (struct ospf6_lsa *lsa);
 
-#define OSPF6_LSDB_SHOW_LEVEL_NORMAL   0
-#define OSPF6_LSDB_SHOW_LEVEL_DETAIL   1
-#define OSPF6_LSDB_SHOW_LEVEL_INTERNAL 2
-#define OSPF6_LSDB_SHOW_LEVEL_DUMP     3
+enum ospf_lsdb_show_level {
+ OSPF6_LSDB_SHOW_LEVEL_NORMAL = 0,
+ OSPF6_LSDB_SHOW_LEVEL_DETAIL,
+ OSPF6_LSDB_SHOW_LEVEL_INTERNAL,
+ OSPF6_LSDB_SHOW_LEVEL_DUMP,
+};
 
-extern void ospf6_lsdb_show (struct vty *vty, int level, u_int16_t *type,
+extern void ospf6_lsdb_show (struct vty *vty,
+                             enum ospf_lsdb_show_level level, u_int16_t *type,
                              u_int32_t *id, u_int32_t *adv_router,
                              struct ospf6_lsdb *lsdb);