dialer

package
v1.40.0 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2025 License: MIT Imports: 33 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoSuitableAddress  = errors.New("no suitable address")
	ErrBadIPAddressLength = errors.New("bad IP address length")
	ErrUnknownNetwork     = errors.New("unknown network")
)

Functions

func ChainFromURL added in v1.36.0

func ChainFromURL(u *url.URL, base xproxy.Dialer) (xproxy.Dialer, error)

func CommandDialerFromURL added in v1.38.0

func CommandDialerFromURL(u *url.URL, _ xproxy.Dialer) (xproxy.Dialer, error)

func GetCachedDialer added in v1.22.0

func GetCachedDialer(u *url.URL, next xproxy.Dialer) (xproxy.Dialer, error)

func H2ProxyDialerFromURL added in v1.24.0

func H2ProxyDialerFromURL(u *url.URL, next xproxy.Dialer) (xproxy.Dialer, error)

func HTTPProxyDialerFromURL

func HTTPProxyDialerFromURL(u *url.URL, next xproxy.Dialer) (xproxy.Dialer, error)

func NewFixedDstDialerFromURL added in v1.38.0

func NewFixedDstDialerFromURL(u *url.URL, next xproxy.Dialer) (xproxy.Dialer, error)

func NewHintsSettingDialerFromURL added in v1.19.0

func NewHintsSettingDialerFromURL(u *url.URL, next xproxy.Dialer) (xproxy.Dialer, error)

func OptimisticHTTPProxyDialerFromURL added in v1.26.0

func OptimisticHTTPProxyDialerFromURL(u *url.URL, next xproxy.Dialer) (xproxy.Dialer, error)

func SOCKS5SDialerFromURL added in v1.32.0

func SOCKS5SDialerFromURL(u *url.URL, next xproxy.Dialer) (xproxy.Dialer, error)

func WantsHostname added in v1.16.0

func WantsHostname(ctx context.Context, net, address string, d Dialer) bool

Types

type BoundDialer

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

func NewBoundDialer

func NewBoundDialer(defaultDialer Dialer, defaultHints string) *BoundDialer

func (*BoundDialer) Dial

func (d *BoundDialer) Dial(network, address string) (net.Conn, error)

func (*BoundDialer) DialContext

func (d *BoundDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (*BoundDialer) WantsHostname added in v1.16.0

func (d *BoundDialer) WantsHostname(ctx context.Context, net, address string) bool

type CommandDialer added in v1.38.0

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

func (*CommandDialer) Dial added in v1.38.0

func (d *CommandDialer) Dial(network, address string) (net.Conn, error)

func (*CommandDialer) DialContext added in v1.38.0

func (d *CommandDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (*CommandDialer) WantsHostname added in v1.38.0

func (d *CommandDialer) WantsHostname(_ context.Context, _, _ string) bool

type Dialer

type Dialer interface {
	LegacyDialer
	DialContext(ctx context.Context, network, address string) (net.Conn, error)
}

func AlwaysRequireHostname added in v1.16.0

func AlwaysRequireHostname(d Dialer) Dialer

func MaybeWrapWithContextDialer

func MaybeWrapWithContextDialer(d LegacyDialer) Dialer

func MaybeWrapWithHostnameWanter added in v1.19.0

func MaybeWrapWithHostnameWanter(d Dialer) Dialer

func NeverRequireHostname added in v1.36.0

func NeverRequireHostname(d Dialer) Dialer

func ProxyDialerFromURL

func ProxyDialerFromURL(proxyURL string, forward Dialer) (Dialer, error)

type FilterDialer added in v1.16.0

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

func NewFilterDialer added in v1.16.0

func NewFilterDialer(filterFunc FilterFunc, next Dialer) FilterDialer

func (FilterDialer) Dial added in v1.16.0

func (f FilterDialer) Dial(network, address string) (net.Conn, error)

func (FilterDialer) DialContext added in v1.16.0

func (f FilterDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (FilterDialer) WantsHostname added in v1.16.0

func (f FilterDialer) WantsHostname(ctx context.Context, network, address string) bool

type FilterFunc added in v1.16.0

type FilterFunc = func(ctx context.Context, req *http.Request, username, network, address string) error

type FixedDstDialer added in v1.38.0

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

func (*FixedDstDialer) Dial added in v1.38.0

func (d *FixedDstDialer) Dial(network, address string) (net.Conn, error)

func (*FixedDstDialer) DialContext added in v1.38.0

func (d *FixedDstDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (*FixedDstDialer) WantsHostname added in v1.38.0

func (d *FixedDstDialer) WantsHostname(_ context.Context, _, _ string) bool

type H2ProxyDialer added in v1.24.0

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

func (*H2ProxyDialer) Dial added in v1.24.0

func (d *H2ProxyDialer) Dial(network, address string) (net.Conn, error)

func (*H2ProxyDialer) DialContext added in v1.24.0

func (d *H2ProxyDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

type HTTPProxyDialer

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

func NewHTTPProxyDialer

func NewHTTPProxyDialer(address string, tlsConfig *tls.Config, userinfo *url.Userinfo, next LegacyDialer) *HTTPProxyDialer

func (*HTTPProxyDialer) Dial

func (d *HTTPProxyDialer) Dial(network, address string) (net.Conn, error)

func (*HTTPProxyDialer) DialContext

func (d *HTTPProxyDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

type HintsSettingDialer added in v1.19.0

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

func (*HintsSettingDialer) Dial added in v1.19.0

func (hs *HintsSettingDialer) Dial(network, address string) (net.Conn, error)

func (*HintsSettingDialer) DialContext added in v1.19.0

func (hs *HintsSettingDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (*HintsSettingDialer) WantsHostname added in v1.19.0

func (hs *HintsSettingDialer) WantsHostname(ctx context.Context, net, address string) bool

type HostnameWanter added in v1.16.0

type HostnameWanter interface {
	WantsHostname(ctx context.Context, net, address string) bool
}

type JSRouter added in v1.17.0

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

func NewJSRouter added in v1.17.0

func NewJSRouter(filename string, instances int, factory func(string) (Dialer, error), logger *clog.CondLogger, next Dialer) (*JSRouter, error)

func (*JSRouter) Dial added in v1.17.0

func (j *JSRouter) Dial(network, address string) (net.Conn, error)

func (*JSRouter) DialContext added in v1.17.0

func (j *JSRouter) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (*JSRouter) WantsHostname added in v1.17.0

func (j *JSRouter) WantsHostname(ctx context.Context, network, address string) bool

type JSRouterFunc added in v1.17.0

type JSRouterFunc = func(req *jsext.JSRequestInfo, dst *jsext.JSDstInfo, username string) (string, error)

type LegacyDialer added in v1.16.0

type LegacyDialer interface {
	Dial(network, address string) (net.Conn, error)
}

type NameResolveCachingDialer added in v1.16.0

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

func NewNameResolveCachingDialer added in v1.16.0

func NewNameResolveCachingDialer(next Dialer, resolver Resolver, posTTL, negTTL, timeout time.Duration) *NameResolveCachingDialer

func (*NameResolveCachingDialer) Dial added in v1.16.0

func (nrcd *NameResolveCachingDialer) Dial(network, address string) (net.Conn, error)

func (*NameResolveCachingDialer) DialContext added in v1.16.0

func (nrcd *NameResolveCachingDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (*NameResolveCachingDialer) WantsHostname added in v1.16.0

func (nrcd *NameResolveCachingDialer) WantsHostname(ctx context.Context, net, address string) bool

type NameResolvingDialer added in v1.16.0

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

func NewNameResolvingDialer added in v1.16.0

func NewNameResolvingDialer(next Dialer, resolver Resolver) NameResolvingDialer

func (NameResolvingDialer) Dial added in v1.16.0

func (nrd NameResolvingDialer) Dial(network, address string) (net.Conn, error)

func (NameResolvingDialer) DialContext added in v1.16.0

func (nrd NameResolvingDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (NameResolvingDialer) WantsHostname added in v1.16.0

func (nrd NameResolvingDialer) WantsHostname(ctx context.Context, net, address string) bool

type OptimisticHTTPProxyDialer added in v1.26.0

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

func NewOptimisticHTTPProxyDialer added in v1.26.0

func NewOptimisticHTTPProxyDialer(address string, tlsConfig *tls.Config, userinfo *url.Userinfo, next LegacyDialer) *OptimisticHTTPProxyDialer

func (*OptimisticHTTPProxyDialer) Dial added in v1.26.0

func (d *OptimisticHTTPProxyDialer) Dial(network, address string) (net.Conn, error)

func (*OptimisticHTTPProxyDialer) DialContext added in v1.26.0

func (d *OptimisticHTTPProxyDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

type PipeAddr added in v1.38.0

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

func (PipeAddr) Network added in v1.38.0

func (_ PipeAddr) Network() string

func (PipeAddr) String added in v1.38.0

func (a PipeAddr) String() string

type PipeConn added in v1.38.0

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

func NewPipeConn added in v1.38.0

func NewPipeConn(r ReadPipe, w WritePipe) *PipeConn

func (*PipeConn) Close added in v1.38.0

func (c *PipeConn) Close() error

func (*PipeConn) CloseRead added in v1.38.0

func (c *PipeConn) CloseRead() error

func (*PipeConn) CloseWrite added in v1.38.0

func (c *PipeConn) CloseWrite() error

func (*PipeConn) LocalAddr added in v1.38.0

func (c *PipeConn) LocalAddr() net.Addr

func (*PipeConn) Read added in v1.38.0

func (c *PipeConn) Read(p []byte) (n int, err error)

func (*PipeConn) ReadFrom added in v1.38.0

func (c *PipeConn) ReadFrom(r io.Reader) (n int64, err error)

func (*PipeConn) RemoteAddr added in v1.38.0

func (c *PipeConn) RemoteAddr() net.Addr

func (*PipeConn) SetDeadline added in v1.38.0

func (c *PipeConn) SetDeadline(t time.Time) error

func (*PipeConn) SetReadDeadline added in v1.38.0

func (c *PipeConn) SetReadDeadline(t time.Time) error

func (*PipeConn) SetWriteDeadline added in v1.38.0

func (c *PipeConn) SetWriteDeadline(t time.Time) error

func (*PipeConn) Write added in v1.38.0

func (c *PipeConn) Write(p []byte) (n int, err error)

func (*PipeConn) WriteTo added in v1.38.0

func (c *PipeConn) WriteTo(w io.Writer) (n int64, err error)

type ReadPipe added in v1.38.0

type ReadPipe interface {
	io.Reader
	io.WriterTo
	io.Closer
	Fd() uintptr
	SetReadDeadline(t time.Time) error
}

type Resolver added in v1.16.0

type Resolver interface {
	LookupNetIP(ctx context.Context, network, host string) ([]netip.Addr, error)
}

type TLSWrappingDialer added in v1.32.0

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

func NewTLSWrappingDialer added in v1.32.0

func NewTLSWrappingDialer(tlsConfig *tls.Config, tlsFactory func(net.Conn, *tls.Config) net.Conn, next Dialer) *TLSWrappingDialer

func (*TLSWrappingDialer) Dial added in v1.32.0

func (d *TLSWrappingDialer) Dial(network, address string) (net.Conn, error)

func (*TLSWrappingDialer) DialContext added in v1.32.0

func (d *TLSWrappingDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

type WrappedHostnameDialer added in v1.16.0

type WrappedHostnameDialer struct {
	Dialer             Dialer
	WantsHostnameValue bool
}

func (WrappedHostnameDialer) Dial added in v1.16.0

func (w WrappedHostnameDialer) Dial(network, address string) (net.Conn, error)

func (WrappedHostnameDialer) DialContext added in v1.16.0

func (w WrappedHostnameDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error)

func (WrappedHostnameDialer) WantsHostname added in v1.16.0

func (w WrappedHostnameDialer) WantsHostname(_ context.Context, _, _ string) bool

type WritePipe added in v1.38.0

type WritePipe interface {
	io.Writer
	io.ReaderFrom
	io.Closer
	Fd() uintptr
	SetWriteDeadline(t time.Time) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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