hosterrorscache

package
v3.0.0-...-7b6adf0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultMaxHostsCount = 10000

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	MaxHostError int

	TrackError []string
	// contains filtered or unexported fields
}

Cache is a cache for host based errors. It allows skipping certain hosts based on an error threshold.

It uses an LRU cache internally for skipping unresponsive hosts that remain so for a duration.

func New

func New(maxHostError, maxHostsCount int, trackError []string) *Cache

New returns a new host max errors cache

func (*Cache) Check

func (c *Cache) Check(ctx *contextargs.Context) bool

Check returns true if a host should be skipped as it has been unresponsive for a certain number of times.

The value can be many formats -

  • URL: https?:// type
  • Host:port type
  • host type

func (*Cache) Close

func (c *Cache) Close()

Close closes the host errors cache

func (*Cache) GetKeyFromContext

func (c *Cache) GetKeyFromContext(ctx *contextargs.Context, err error) string

GetKeyFromContext returns the key for the cache from the context

func (*Cache) MarkFailed

func (c *Cache) MarkFailed(ctx *contextargs.Context, err error)

MarkFailed marks a host as failed previously

func (*Cache) SetVerbose

func (c *Cache) SetVerbose(verbose bool)

SetVerbose sets the cache to log at verbose level

type CacheInterface

type CacheInterface interface {
	SetVerbose(verbose bool)                        // log verbosely
	Close()                                         // close the cache
	Check(ctx *contextargs.Context) bool            // return true if the host should be skipped
	MarkFailed(ctx *contextargs.Context, err error) // record a failure (and cause) for the host
}

CacheInterface defines the signature of the hosterrorscache so that users of Nuclei as embedded lib may implement their own cache

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL