statute

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2024 License: MIT, MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	HTTPPing = 1 << 1
	TLSPing  = 1 << 2
	TCPPing  = 1 << 3
	QUICPing = 1 << 4
	WARPPing = 1 << 5
)

Functions

func DefaultCFRanges

func DefaultCFRanges() []netip.Prefix

func DefaultDialerFunc

func DefaultDialerFunc(ctx context.Context, network, addr string) (net.Conn, error)

func DefaultHTTPClientFunc

func DefaultHTTPClientFunc(rawDialer TDialerFunc, tlsDialer TDialerFunc, quicDialer TQuicDialerFunc, targetAddr ...string) *http.Client

func DefaultQuicDialerFunc

func DefaultQuicDialerFunc(ctx context.Context, addr string, _ *tls.Config, _ *quic.Config) (quic.EarlyConnection, error)

func DefaultTLSDialerFunc

func DefaultTLSDialerFunc(ctx context.Context, network, addr string) (net.Conn, error)

DefaultTLSDialerFunc is a custom TLS dialer function

func TlsVersionToString

func TlsVersionToString(ver uint16) string

Types

type IPInfQueue

type IPInfQueue struct {
	// contains filtered or unexported fields
}

func (*IPInfQueue) Dequeue

func (q *IPInfQueue) Dequeue() IPInfo

Dequeue removes and returns the item with the lowest RTT.

func (*IPInfQueue) Enqueue

func (q *IPInfQueue) Enqueue(item IPInfo)

Enqueue adds an item and then sorts the queue.

func (*IPInfQueue) Size

func (q *IPInfQueue) Size() int

Size returns the number of items in the queue.

type IPInfo

type IPInfo struct {
	AddrPort  netip.AddrPort
	RTT       time.Duration
	CreatedAt time.Time
}

type IPing

type IPing interface {
	Ping() IPingResult
	PingContext(context.Context) IPingResult
}

type IPingResult

type IPingResult interface {
	Result() IPInfo
	Error() error
	fmt.Stringer
}

type ScannerOptions

type ScannerOptions struct {
	UseIPv4               bool
	UseIPv6               bool
	CidrList              []netip.Prefix // CIDR ranges to scan
	SelectedOps           int
	Logger                *slog.Logger
	InsecureSkipVerify    bool
	RawDialerFunc         TDialerFunc
	TLSDialerFunc         TDialerFunc
	QuicDialerFunc        TQuicDialerFunc
	HttpClientFunc        THTTPClientFunc
	UseHTTP3              bool
	UseHTTP2              bool
	DisableCompression    bool
	HTTPPath              string
	Referrer              string
	UserAgent             string
	Hostname              string
	WarpPrivateKey        string
	WarpPeerPublicKey     string
	WarpPresharedKey      string
	Port                  uint16
	IPQueueSize           int
	IPQueueTTL            time.Duration
	MaxDesirableRTT       time.Duration
	IPQueueChangeCallback TIPQueueChangeCallback
	ConnectionTimeout     time.Duration
	HandshakeTimeout      time.Duration
	TlsVersion            uint16
}
var FinalOptions *ScannerOptions

type TDialerFunc

type TDialerFunc func(ctx context.Context, network, addr string) (net.Conn, error)

type THTTPClientFunc

type THTTPClientFunc func(rawDialer TDialerFunc, tlsDialer TDialerFunc, quicDialer TQuicDialerFunc, targetAddr ...string) *http.Client

type TIPQueueChangeCallback

type TIPQueueChangeCallback func(ips []IPInfo)

type TQuicDialerFunc

type TQuicDialerFunc func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlyConnection, error)

Jump to

Keyboard shortcuts

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