]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: sort route-maps for display
authorQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 30 Aug 2018 21:22:22 +0000 (21:22 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 30 Aug 2018 21:22:22 +0000 (21:22 +0000)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
lib/routemap.c

index 4125bb53aee6c5a7413f8d248ae88dd13017dfb5..e5613c2081530e701b9dbeeb87b21693ce7cdf5e 100644 (file)
@@ -891,6 +891,14 @@ static void vty_show_route_map_entry(struct vty *vty, struct route_map *map)
        }
 }
 
+static int sort_route_map(const void **map1, const void **map2)
+{
+       const struct route_map *m1 = *map1;
+       const struct route_map *m2 = *map2;
+
+       return strcmp(m1->name, m2->name);
+}
+
 static int vty_show_route_map(struct vty *vty, const char *name)
 {
        struct route_map *map;
@@ -907,9 +915,19 @@ static int vty_show_route_map(struct vty *vty, const char *name)
                        return CMD_SUCCESS;
                }
        } else {
+
+               struct list *maplist = list_new();
+               struct listnode *ln;
+
                for (map = route_map_master.head; map; map = map->next)
-                       if (!map->deleted)
-                               vty_show_route_map_entry(vty, map);
+                       listnode_add(maplist, map);
+
+               list_sort(maplist, sort_route_map);
+
+               for (ALL_LIST_ELEMENTS_RO(maplist, ln, map))
+                       vty_show_route_map_entry(vty, map);
+
+               list_delete_and_null(&maplist);
        }
        return CMD_SUCCESS;
 }