config

package
v0.5.4 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VERSION                 string = "0.5.4"
	DefaultUserAgent        string = "Dodo/" + VERSION
	ProxyCheckURL           string = "https://www.google.com"
	DefaultMethod           string = "GET"
	DefaultTimeout          uint32 = 10000 // Milliseconds (10 seconds)
	DefaultDodosCount       uint   = 1
	DefaultRequestCount     uint   = 1
	MaxDodosCountForProxies uint   = 20 // Max dodos count for proxy check
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CLIConfig

type CLIConfig struct {
	*Config
	Yes        Option[bool] `json:"yes" validate:"omitempty"`
	ConfigFile string       `validation_name:"config-file" validate:"omitempty,filepath"`
}

func NewCLIConfig added in v0.5.2

func NewCLIConfig(
	config *Config,
	yes Option[bool],
	configFile string,
) *CLIConfig

func (*CLIConfig) MergeConfigs

func (config *CLIConfig) MergeConfigs(newConfig *CLIConfig)

type Config

type Config struct {
	Method       string       `json:"method" validate:"http_method"` // custom validations: http_method
	URL          string       `json:"url" validate:"http_url,required"`
	Timeout      uint32       `json:"timeout" validate:"gte=1,lte=100000"`
	DodosCount   uint         `json:"dodos_count" validate:"gte=1"`
	RequestCount uint         `json:"request_count" validation_name:"request-count" validate:"gte=1"`
	NoProxyCheck Option[bool] `json:"no_proxy_check"`
}

func NewConfig added in v0.5.2

func NewConfig(
	method string,
	timeout uint32,
	dodosCount uint,
	requestCount uint,
	noProxyCheck Option[bool],
) *Config

func (*Config) MergeConfigs

func (config *Config) MergeConfigs(newConfig *Config)

func (*Config) SetDefaults

func (config *Config) SetDefaults()

type JSONConfig

type JSONConfig struct {
	*Config
	Params  map[string][]string `json:"params"`
	Headers map[string][]string `json:"headers"`
	Cookies map[string][]string `json:"cookies"`
	Proxies []Proxy             `json:"proxies" validate:"dive"`
	Body    []string            `json:"body"`
}

func NewJSONConfig added in v0.5.2

func NewJSONConfig(
	config *Config,
	params map[string][]string,
	headers map[string][]string,
	cookies map[string][]string,
	proxies []Proxy,
	body []string,
) *JSONConfig

func (*JSONConfig) MergeConfigs

func (config *JSONConfig) MergeConfigs(newConfig *JSONConfig)

type Proxy

type Proxy struct {
	URL      string `json:"url" validate:"required,proxy_url"`
	Username string `json:"username"`
	Password string `json:"password"`
}

type RequestConfig

type RequestConfig struct {
	Method       string
	URL          *url.URL
	Timeout      time.Duration
	DodosCount   uint
	RequestCount uint
	Params       map[string][]string
	Headers      map[string][]string
	Cookies      map[string][]string
	Proxies      []Proxy
	Body         []string
	Yes          bool
	NoProxyCheck bool
}

func (*RequestConfig) GetMaxConns added in v0.4.2

func (config *RequestConfig) GetMaxConns(minConns uint) uint

func (*RequestConfig) GetValidDodosCountForProxies

func (config *RequestConfig) GetValidDodosCountForProxies() uint

func (*RequestConfig) GetValidDodosCountForRequests

func (config *RequestConfig) GetValidDodosCountForRequests() uint

func (*RequestConfig) Print

func (config *RequestConfig) Print()

Jump to

Keyboard shortcuts

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