mirror of
https://github.com/gocsaf/csaf.git
synced 2025-12-22 18:15:42 +01:00
Merge pull request #235 from csaf-poc/bad-dirs-only-once
Only report bad directories in listing check only once.
This commit is contained in:
commit
6a87157184
2 changed files with 14 additions and 2 deletions
|
|
@ -25,7 +25,11 @@ type (
|
|||
pages map[string]*pageContent
|
||||
)
|
||||
|
||||
func (pgs pages) listed(path string, pro *processor) (bool, error) {
|
||||
func (pgs pages) listed(
|
||||
path string,
|
||||
pro *processor,
|
||||
badDirs map[string]struct{},
|
||||
) (bool, error) {
|
||||
pathURL, err := url.Parse(path)
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
|
@ -50,6 +54,10 @@ func (pgs pages) listed(path string, pro *processor) (bool, error) {
|
|||
return false, err
|
||||
}
|
||||
|
||||
if _, ok := badDirs[base]; ok {
|
||||
return false, errContinue
|
||||
}
|
||||
|
||||
// load page
|
||||
client := pro.httpClient()
|
||||
pro.checkTLS(base)
|
||||
|
|
@ -59,11 +67,13 @@ func (pgs pages) listed(path string, pro *processor) (bool, error) {
|
|||
|
||||
if err != nil {
|
||||
pro.badDirListings.error("Fetching %s failed: %v", base, err)
|
||||
badDirs[base] = struct{}{}
|
||||
return false, errContinue
|
||||
}
|
||||
if res.StatusCode != http.StatusOK {
|
||||
pro.badDirListings.error("Fetching %s failed. Status code %d (%s)",
|
||||
base, res.StatusCode, res.Status)
|
||||
badDirs[base] = struct{}{}
|
||||
return false, errContinue
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -954,8 +954,10 @@ func (p *processor) checkListing(string) error {
|
|||
|
||||
var unlisted []string
|
||||
|
||||
badDirs := map[string]struct{}{}
|
||||
|
||||
for f := range p.alreadyChecked {
|
||||
found, err := pgs.listed(f, p)
|
||||
found, err := pgs.listed(f, p, badDirs)
|
||||
if err != nil && err != errContinue {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue