diff options
author | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-08-30 23:22:22 +0200 |
---|---|---|
committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-08-30 23:22:22 +0200 |
commit | 78b1bb5ff3722033a7c4af8d3824cb0c2ecb5e93 (patch) | |
tree | 1217b2e12c59358c846a74e145501df24e356bdd /lib/routemap.c | |
parent | Merge pull request #2947 from mjstapp/fix_os_name (diff) | |
download | frr-78b1bb5ff3722033a7c4af8d3824cb0c2ecb5e93.tar.xz frr-78b1bb5ff3722033a7c4af8d3824cb0c2ecb5e93.zip |
lib: sort route-maps for display
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'lib/routemap.c')
-rw-r--r-- | lib/routemap.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/routemap.c b/lib/routemap.c index 4125bb53a..e5613c208 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -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; } |