2021-09-13 09:37:59 +00:00
|
|
|
package pxndscvm
|
|
|
|
|
2021-09-13 16:32:07 +00:00
|
|
|
import (
|
|
|
|
"errors"
|
|
|
|
"time"
|
|
|
|
)
|
2021-09-13 10:08:04 +00:00
|
|
|
|
2021-09-13 09:37:59 +00:00
|
|
|
// AddUserAgents appends to the list of useragents we randomly choose from during proxied requests
|
|
|
|
func (s *Swamp) AddUserAgents(uagents []string) {
|
|
|
|
// mutex lock so that RLock during proxy checking will block while we change this value
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.UserAgents = append(s.swampopt.UserAgents, uagents...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// SetUserAgents sets the list of useragents we randomly choose from during proxied requests
|
|
|
|
func (s *Swamp) SetUserAgents(uagents []string) {
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.UserAgents = append(s.swampopt.UserAgents, uagents...)
|
|
|
|
}
|
|
|
|
|
2021-09-13 15:36:30 +00:00
|
|
|
// SetCheckEndpoints replaces the running list of whatismyip style endpoitns for validation. (must return only the WAN IP)
|
|
|
|
func (s *Swamp) SetCheckEndpoints(newendpoints []string) {
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.CheckEndpoints = newendpoints
|
|
|
|
}
|
|
|
|
|
|
|
|
// AddCheckEndpoints appends entries to the running list of whatismyip style endpoitns for validation. (must return only the WAN IP)
|
|
|
|
func (s *Swamp) AddCheckEndpoints(newendpoints []string) {
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.CheckEndpoints = append(s.swampopt.CheckEndpoints, newendpoints...)
|
|
|
|
}
|
|
|
|
|
2021-09-13 16:32:07 +00:00
|
|
|
// SetStaleTime replaces the duration of time after which a proxy will be considered "stale". stale proxies will be skipped upon retrieval.
|
|
|
|
func (s *Swamp) SetStaleTime(newtime time.Duration) {
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.Stale = newtime
|
|
|
|
}
|
|
|
|
|
2021-09-13 17:40:23 +00:00
|
|
|
// SetValidationTimeout sets the ValidationTimeout option (in seconds).
|
|
|
|
func (s *Swamp) SetValidationTimeout(newtimeout int) {
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.ValidationTimeout = newtimeout
|
|
|
|
}
|
|
|
|
|
2021-09-13 10:08:04 +00:00
|
|
|
// EnableDebug enables printing of verbose messages during operation
|
2021-09-13 09:37:59 +00:00
|
|
|
func (s *Swamp) EnableDebug() {
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.Debug = true
|
|
|
|
}
|
|
|
|
|
2021-09-13 10:08:04 +00:00
|
|
|
// DisableDebug enables printing of verbose messages during operation
|
2021-09-13 09:37:59 +00:00
|
|
|
func (s *Swamp) DisableDebug() {
|
|
|
|
s.mu.Lock()
|
|
|
|
defer s.mu.Unlock()
|
|
|
|
s.swampopt.Debug = false
|
|
|
|
}
|
2021-09-13 10:08:04 +00:00
|
|
|
|
2021-09-13 15:17:20 +00:00
|
|
|
// SetMaxWorkers set the maximum workers for proxy checking, this must be set before calling LoadProxyTXT for the first time.
|
2021-09-13 10:08:04 +00:00
|
|
|
func (s *Swamp) SetMaxWorkers(num int) error {
|
|
|
|
if s.started {
|
|
|
|
return errors.New("can't change max workers during proxypool operation, only before")
|
|
|
|
}
|
|
|
|
s.swampopt.MaxWorkers = num
|
|
|
|
return nil
|
|
|
|
}
|