Package proxy
Overview ▹
Index ▹
Variables
Direct is a direct proxy: one that makes network connections directly.
var Direct = direct{}
func RegisterDialerType ¶
func RegisterDialerType(scheme string, f func(*url.URL, Dialer) (Dialer, error))
RegisterDialerType takes a URL scheme and a function to generate Dialers from a URL with that scheme and a forwarding Dialer. Registered schemes are used by FromURL.
type Auth ¶
Auth contains authentication parameters that specific Dialers may require.
type Auth struct { User, Password string }
type Dialer ¶
A Dialer is a means to establish a connection.
type Dialer interface {
// Dial connects to the given address via the proxy.
Dial(network, addr string) (c net.Conn, err error)
}
func FromEnvironment ¶
func FromEnvironment() Dialer
FromEnvironment returns the dialer specified by the proxy related variables in the environment.
func FromURL ¶
func FromURL(u *url.URL, forward Dialer) (Dialer, error)
FromURL returns a Dialer given a URL specification and an underlying Dialer for it to make network requests.
func SOCKS5 ¶
func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error)
SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address with an optional username and password. See RFC 1928.
type PerHost ¶
A PerHost directs connections to a default Dialer unless the hostname requested matches one of a number of exceptions.
type PerHost struct {
// contains filtered or unexported fields
}
func NewPerHost ¶
func NewPerHost(defaultDialer, bypass Dialer) *PerHost
NewPerHost returns a PerHost Dialer that directs connections to either defaultDialer or bypass, depending on whether the connection matches one of the configured rules.
func (*PerHost) AddFromString ¶
func (p *PerHost) AddFromString(s string)
AddFromString parses a string that contains comma-separated values specifying hosts that should use the bypass proxy. Each value is either an IP address, a CIDR range, a zone (*.example.com) or a hostname (localhost). A best effort is made to parse the string and errors are ignored.
func (*PerHost) AddHost ¶
func (p *PerHost) AddHost(host string)
AddHost specifies a hostname that will use the bypass proxy.
func (*PerHost) AddIP ¶
func (p *PerHost) AddIP(ip net.IP)
AddIP specifies an IP address that will use the bypass proxy. Note that this will only take effect if a literal IP address is dialed. A connection to a named host will never match an IP.
func (*PerHost) AddNetwork ¶
func (p *PerHost) AddNetwork(net *net.IPNet)
AddNetwork specifies an IP range that will use the bypass proxy. Note that this will only take effect if a literal IP address is dialed. A connection to a named host will never match.
func (*PerHost) AddZone ¶
func (p *PerHost) AddZone(zone string)
AddZone specifies a DNS suffix that will use the bypass proxy. A zone of "example.com" matches "example.com" and all of its subdomains.
func (*PerHost) Dial ¶
func (p *PerHost) Dial(network, addr string) (c net.Conn, err error)
Dial connects to the address addr on the given network through either defaultDialer or bypass.