From 43182aa59d396cd474baee23fc95a977b625254e Mon Sep 17 00:00:00 2001 From: Matthias Hannig Date: Fri, 25 Jan 2019 10:31:58 +0100 Subject: [PATCH] use isRoutesFilterd in routes dump --- bird/bird.go | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/bird/bird.go b/bird/bird.go index 2c86c8b..490a10a 100644 --- a/bird/bird.go +++ b/bird/bird.go @@ -376,11 +376,38 @@ func RoutesPeer(peer string) (Parsed, bool) { } func RoutesDump() (Parsed, bool) { - if ParserConf.PerPeerTables { - return RoutesDumpPerPeerTable() + /* + if ParserConf.PerPeerTables { + return RoutesDumpPerPeerTable() + } + + return RoutesDumpSingleTable() + */ + return RoutesDumpCommunityFilter() +} + +func RoutesDumpCommunityFilter() (Parsed, bool) { + importedRes, cached := RunAndParse(routeQueryForChannel("route all"), parseRoutes) + + routes := importedRes["routes"].([]Parsed) + + imported := make([]interface{}, 0, len(routes)) + filtered := make([]interface{}, 0, len(routes)) + + for _, route := range routes { + if isRouteFiltered(route) { + filtered = append(filtered, route) + } else { + imported = append(imported, route) + } } - return RoutesDumpSingleTable() + result := Parsed{ + "imported": imported, + "filtered": filtered, + } + + return result, cached } func RoutesDumpSingleTable() (Parsed, bool) {