From d64aa20cee579c04b8d38b5470d5bf899141dad2 Mon Sep 17 00:00:00 2001 From: "Kunz, Immanuel" Date: Mon, 22 Apr 2024 17:53:45 +0200 Subject: [PATCH] first draft for downloader using enumerate --- cmd/csaf_downloader/downloader.go | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/cmd/csaf_downloader/downloader.go b/cmd/csaf_downloader/downloader.go index 7fa0c7c..86939d8 100644 --- a/cmd/csaf_downloader/downloader.go +++ b/cmd/csaf_downloader/downloader.go @@ -165,6 +165,39 @@ func httpLog(who string) func(string, string) { } } +func (d *downloader) enumerate(ctx context.Context, domain string) error { + client := d.httpClient() + + loader := csaf.NewProviderMetadataLoader(client) + + lpmd := loader.Enumerate(domain) + + if d.cfg.verbose() { + for i := range lpmd.Messages { + slog.Debug("Loading provider-metadata.json", + "domain", domain, + "message", lpmd.Messages[i].Message) + } + } + + for _, pmd := range lpmd { + if !pmd.Valid() { + return fmt.Errorf("invalid provider-metadata.json found for '%s'", domain) + } + _, err := url.Parse(pmd.URL) + if err != nil { + return fmt.Errorf("invalid URL found '%s': %v", pmd.URL, err) + } + + // TODO print + fmt.Println(pmd.URL) + fmt.Println(pmd.Document) + fmt.Println(pmd.Messages) + fmt.Println(pmd.Hash) + } + +} + func (d *downloader) download(ctx context.Context, domain string) error { client := d.httpClient()