1
0
Fork 0
mirror of https://github.com/gocsaf/csaf.git synced 2025-12-22 11:55:40 +01:00

Downloader: Remove verbose flag (#464)

* Remove verbose flag from downloader.

* Do structured http logging in forwarder, too.

* Use structured logging to separate http traffic of downloader from forwarder.
This commit is contained in:
Sascha L. Teichmann 2023-09-27 11:30:24 +02:00 committed by GitHub
parent 49da14d47f
commit 7cd076d4f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 166 additions and 78 deletions

View file

@ -108,7 +108,7 @@ func (d *downloader) httpClient() util.Client {
hClient := http.Client{}
if d.cfg.LogLevel.slogLevel() <= slog.LevelDebug {
if d.cfg.verbose() {
hClient.CheckRedirect = logRedirect
}
@ -136,8 +136,11 @@ func (d *downloader) httpClient() util.Client {
}
// Add optional URL logging.
if d.cfg.Verbose {
client = &util.LoggingClient{Client: client}
if d.cfg.verbose() {
client = &util.LoggingClient{
Client: client,
Log: httpLog("downloader"),
}
}
// Add optional rate limiting.
@ -151,6 +154,16 @@ func (d *downloader) httpClient() util.Client {
return client
}
// httpLog does structured logging in a [util.LoggingClient].
func httpLog(who string) func(string, string) {
return func(method, url string) {
slog.Debug("http",
"who", who,
"method", method,
"url", url)
}
}
func (d *downloader) download(ctx context.Context, domain string) error {
client := d.httpClient()
@ -158,9 +171,9 @@ func (d *downloader) download(ctx context.Context, domain string) error {
lpmd := loader.Load(domain)
if d.cfg.Verbose {
if d.cfg.verbose() {
for i := range lpmd.Messages {
slog.Info("Loading provider-metadata.json",
slog.Debug("Loading provider-metadata.json",
"domain", domain,
"message", lpmd.Messages[i].Message)
}
@ -347,7 +360,7 @@ func (d *downloader) logValidationIssues(url string, errors []string, err error)
return
}
if len(errors) > 0 {
if d.cfg.Verbose {
if d.cfg.verbose() {
slog.Error("CSAF file has validation errors",
"url", url,
"error", strings.Join(errors, ", "))
@ -404,9 +417,7 @@ nextAdvisory:
}
if d.cfg.ignoreURL(file.URL()) {
if d.cfg.Verbose {
slog.Warn("Ignoring URL", "url", file.URL())
}
slog.Debug("Ignoring URL", "url", file.URL())
continue
}
@ -454,22 +465,18 @@ nextAdvisory:
// Only hash when we have a remote counter part we can compare it with.
if remoteSHA256, s256Data, err = loadHash(client, file.SHA256URL()); err != nil {
if d.cfg.Verbose {
slog.Warn("Cannot fetch SHA256",
"url", file.SHA256URL(),
"error", err)
}
slog.Warn("Cannot fetch SHA256",
"url", file.SHA256URL(),
"error", err)
} else {
s256 = sha256.New()
writers = append(writers, s256)
}
if remoteSHA512, s512Data, err = loadHash(client, file.SHA512URL()); err != nil {
if d.cfg.Verbose {
slog.Warn("Cannot fetch SHA512",
"url", file.SHA512URL(),
"error", err)
}
slog.Warn("Cannot fetch SHA512",
"url", file.SHA512URL(),
"error", err)
} else {
s512 = sha512.New()
writers = append(writers, s512)
@ -522,11 +529,9 @@ nextAdvisory:
var sign *crypto.PGPSignature
sign, signData, err = loadSignature(client, file.SignURL())
if err != nil {
if d.cfg.Verbose {
slog.Warn("Downloading signature failed",
"url", file.SignURL(),
"error", err)
}
slog.Warn("Downloading signature failed",
"url", file.SignURL(),
"error", err)
}
if sign != nil {
if err := d.checkSignature(data.Bytes(), sign); err != nil {