1
0
mirror of https://github.com/alice-lg/alice-lg.git synced 2024-05-11 05:55:03 +00:00

sort by prefix for binary search lookup

This commit is contained in:
Matthias Hannig
2017-06-23 11:17:18 +02:00
parent f8e0b29ddc
commit 87dab572ba

View File

@ -283,17 +283,25 @@ func parseRoutesDump(bird ClientResponse, config Config) (api.RoutesResponse, er
}
result.Api = apiStatus
// Fetch imported routes
importedRoutes, ok := bird["imported"].([]interface{})
if !ok {
return result, fmt.Errorf("Imported routes missing")
}
result.Imported = parseRoutesData(importedRoutes, config)
// Sort routes by network for faster querying
imported := parseRoutesData(importedRoutes, config)
sort.Sort(imported)
result.Imported = imported
// Fetch filtered routes
filteredRoutes, ok := bird["filtered"].([]interface{})
if !ok {
return result, fmt.Errorf("Filtered routes missing")
}
result.Filtered = parseRoutesData(filteredRoutes, config)
filtered := parseRoutesData(filteredRoutes, config)
sort.Sort(filtered)
result.Filtered = filtered
return result, nil
}