Versions in this module Expand all Collapse all v0 v0.5.0 Sep 27, 2026 Changes in this version + const DefaultDialTimeout + const DefaultExpectContinue + const DefaultIdleConnTimeout + const DefaultMaxRedirects + const DefaultMaxResponseBytes + const DefaultRequestTimeout + const DefaultResponseHeader + const DefaultTLSHandshake + var ErrHTTPSRequired = errors.New("only HTTPS URLs are allowed") + var ErrResponseTooLarge = errors.New("response body exceeds configured limit") + var ErrTooManyRedirects = errors.New("redirect limit exceeded") + var ErrUnsafeDestination = errors.New("destination address is not public") + func IsAllowedAddress(address netip.Addr) bool + func NewClient(config Config) (*http.Client, error) + type Config struct + DialContext DialContextFunc + DialTimeout time.Duration + ExpectContinueTimeout time.Duration + IdleConnTimeout time.Duration + MaxRedirects int + MaxResponseBytes int64 + RequestTimeout time.Duration + Resolver Resolver + ResponseHeaderTimeout time.Duration + TLSHandshakeTimeout time.Duration + type DialContextFunc func(ctx context.Context, network, address string) (net.Conn, error) + type Policy struct + func NewPolicy(config Config) (*Policy, error) + func (p *Policy) Client() *http.Client + func (p *Policy) CloseIdleConnections() + func (p *Policy) ValidateURL(ctx context.Context, target *url.URL) error + type Resolver interface + LookupNetIP func(ctx context.Context, network, host string) ([]netip.Addr, error)