From 69b6d875e6e7bd7c432f6fbb216d92dbf31704bf Mon Sep 17 00:00:00 2001 From: Tomoya Amachi Date: Wed, 4 Sep 2019 13:28:34 +0900 Subject: [PATCH] scanVuln => GetScanResults and writeScanResults (#891) --- scan/serverapi.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/scan/serverapi.go b/scan/serverapi.go index 42d6a508..d9750b3c 100644 --- a/scan/serverapi.go +++ b/scan/serverapi.go @@ -628,7 +628,13 @@ func Scan(timeoutSec int) error { if err != nil { return err } - return scanVulns(dir, scannedAt, timeoutSec) + + results, err := GetScanResults(scannedAt, timeoutSec) + if err != nil { + return err + } + + return writeScanResults(dir, results) } // ViaHTTP scans servers by HTTP header and body @@ -739,8 +745,8 @@ func setupChangelogCache() error { return nil } -func scanVulns(jsonDir string, scannedAt time.Time, timeoutSec int) error { - var results models.ScanResults +// GetScanResults returns ScanResults from +func GetScanResults(scannedAt time.Time, timeoutSec int) (results models.ScanResults, err error) { parallelExec(func(o osTypeInterface) (err error) { if err = o.preCure(); err != nil { return err @@ -762,7 +768,6 @@ func scanVulns(jsonDir string, scannedAt time.Time, timeoutSec int) error { if err != nil { util.Log.Errorf("Failed to fetch scannedIPs. err: %+v", err) } - for _, s := range append(servers, errServers...) { r := s.convertToModel() r.ScannedAt = scannedAt @@ -779,7 +784,10 @@ func scanVulns(jsonDir string, scannedAt time.Time, timeoutSec int) error { r.ServerName, r.Warnings) } } + return results, nil +} +func writeScanResults(jsonDir string, results models.ScanResults) error { config.Conf.FormatJSON = true ws := []report.ResultWriter{ report.LocalFileWriter{CurrentDir: jsonDir}, @@ -801,7 +809,6 @@ func scanVulns(jsonDir string, scannedAt time.Time, timeoutSec int) error { if 0 < len(errServerNames) { return fmt.Errorf("An error occurred on %s", errServerNames) } - return nil }