From 68cab9ec5845d62fc461923dc14d8ac43f8fa457 Mon Sep 17 00:00:00 2001 From: "Sascha L. Teichmann" Date: Thu, 16 Dec 2021 03:17:37 +0100 Subject: [PATCH] Search for index.txt and changes.csv in csaf folder, too. --- cmd/csaf_checker/processor.go | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/cmd/csaf_checker/processor.go b/cmd/csaf_checker/processor.go index 07e9650..84234cc 100644 --- a/cmd/csaf_checker/processor.go +++ b/cmd/csaf_checker/processor.go @@ -471,8 +471,11 @@ func (p *processor) checkIndex(base string, mask whereType) error { return errContinue } if res.StatusCode != http.StatusOK { - p.badIndex("Fetching %s failed. Status code %d (%s)", - index, res.StatusCode, res.Status) + // It's optional + if res.StatusCode != http.StatusNotFound { + p.badIndex("Fetching %s failed. Status code %d (%s)", + index, res.StatusCode, res.Status) + } return errContinue } @@ -503,8 +506,11 @@ func (p *processor) checkChanges(base string, mask whereType) error { return errContinue } if res.StatusCode != http.StatusOK { - p.badChange("Fetching %s failed. Status code %d (%s)", - changes, res.StatusCode, res.Status) + if res.StatusCode != http.StatusNotFound { + // It's optional + p.badChange("Fetching %s failed. Status code %d (%s)", + changes, res.StatusCode, res.Status) + } return errContinue } @@ -587,20 +593,23 @@ func (p *processor) checkCSAFs(domain string) error { var feeds [][]csaf.Feed if err := util.ReMarshalJSON(&feeds, rolie); err != nil { p.badProviderMetadata("ROLIE feeds are not compatible: %v.", err) - goto noRolie - } - if err := p.processFeeds(domain, feeds); err != nil { - if err == errContinue { - goto noRolie + } else if err := p.processFeeds(domain, feeds); err != nil { + if err != errContinue { + return err } - return err } } -noRolie: - // No rolie feeds - // TODO: Implement me! + base := "https://" + domain + "/.well-known/csaf" + + if err := p.checkIndex(base, indexMask); err != nil && err != errContinue { + return err + } + + if err := p.checkChanges(base, changesMask); err != nil && err != errContinue { + return err + } return nil }