Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Services ¶
type Services struct {
// Options contains CLI configuration
Options *types.Options
// HostLimiter limits concurrent requests per hostname
HostLimiter *hostlimit.HostRateLimiter
// RateLimiter, when non-nil, caps the GLOBAL outbound request rate (requests
// per second) across all hosts — distinct from HostLimiter's per-host
// concurrency. It is on by default: Options.RateLimit carries the documented
// 100 rps default (scanning_pace.rate_limit) even when --rate-limit is not
// typed, and only a rate of 0 ("unlimited") leaves it nil. Shared across every
// Requester built from these Services (and their WithContext clones), so one
// token bucket governs the whole scan.
RateLimiter *rate.Limiter
// HostErrors tracks host failures for circuit breaking
HostErrors *hosterrors.Cache
// Egress is the scan's egress gate over RateLimiter, HostLimiter and
// HostErrors, built once per scan so every sender shares one wire-attempt
// counter. Read it through EgressGate, which also covers a Services that
// never set it or that replaced one of the three components.
Egress *egress.Gate
// Notifier sends notifications (Telegram, Discord, etc.)
Notifier *notify.Manager
// Dialer is the fastdialer instance for DNS resolution
Dialer *fastdialer.Dialer
// DedupManager manages deduplication for modules
DedupManager *dedup.Manager
}
Services contains runtime services used across the application.
func (*Services) EgressGate ¶ added in v0.5.3
EgressGate returns the gate that applies these Services' rate limiter, host limiter and breaker.
It is s.Egress when that gate applies exactly those three. When a caller has copied the Services and swapped one of them (the probe phase runs on its own rate and host limiter), it is a view over the new components that still counts into s.Egress's wire-attempt counter. With no Egress set it is a fresh gate over the components. Nil-safe: a nil Services yields an ungated gate.
Click to show internal directories.
Click to hide internal directories.