mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-18 00:15:28 +00:00
24 lines
931 B
Go
24 lines
931 B
Go
package protocols
|
|
|
|
import "github.com/projectdiscovery/nuclei/v2/pkg/output"
|
|
|
|
// RequestGenerator is an interface implemented by request generator for a protocol.
|
|
type RequestGenerator interface {
|
|
// Next returns the next request in queue for the generator interface.
|
|
// If no requests are remaining, next returns io.EOF error.
|
|
Next() (interface{}, error)
|
|
// Compile compiles the request generators preparing any requests possible.
|
|
Compile() error
|
|
// Requests returns the total number of requests the rule will perform
|
|
Requests() int64
|
|
}
|
|
|
|
// Executer executes requests from a generator and returns an output event.
|
|
type Executer interface {
|
|
// Execute executes the generator requests and returns an output event channel.
|
|
Execute(generator RequestGenerator, callback OutputEventCallback) error
|
|
}
|
|
|
|
// OutputEventCallback is a callback for each recieved output from executor
|
|
type OutputEventCallback func(event output.Event)
|