diff --git a/ProtoHandler/Handler.go b/ProtoHandler/Handler.go index df74ad7..dc86951 100644 --- a/ProtoHandler/Handler.go +++ b/ProtoHandler/Handler.go @@ -46,35 +46,37 @@ func parsePackages(res *proto.SearchResponse, reg Lotus.Registry) []Package{ return packages } -func fetchPackages(platform string, architecture []string, query string) []Package{ - logger := Lotus.DetailedLogger("ProtoHandler", "receiveSearchResponse") +func fetchPackages(platform string, architecture []string, query string, registry Lotus.Registry) *proto.SearchResponse { + logger := Lotus.DetailedLogger("ProtoHandler", "fetchPackages") - regisitries := Lotus.GetRegistries() + conn := createConnection(registry.Address) + defer conn.Close() - var packages []Package + client, ctx, cancel := createRegistryClient(conn) + defer cancel() - for _, reg := range regisitries{ - conn := createConnection(reg.Address) - - client, ctx, cancel := createRegistryClient(conn) - - res, connErr := client.Search(ctx, &proto.SearchRequest{Platform: platform, Architecture: architecture, Query: query}) - if connErr != nil{ - logger.Fatal(connErr) - } - - for _, pkg := range parsePackages(res, reg){ - packages = append(packages, pkg) - } - - cancel() - conn.Close() + res, connErr := client.Search(ctx, &proto.SearchRequest{Platform: platform, Architecture: architecture, Query: query}) + if connErr != nil{ + logger.Error(connErr) } - return packages + return res } func SearchPackages(platform string, architecture []string, query string) []Package { - return fetchPackages(platform, architecture, query) + registries := Lotus.GetRegistries() + var packages []Package + + for _, reg := range registries{ + + res := fetchPackages(platform, architecture, query, reg) + if res != nil{ + for _, pkg := range parsePackages(res, reg){ + packages = append(packages, pkg) + } + } + } + + return packages }