proxy

package
v0.3.1-beta.3 Latest Latest
Warning

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

Go to latest
Published: May 13, 2022 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EmptyAddr = &emptyAddr{}

Functions

This section is empty.

Types

type Address

type Address interface {
	// Hostname return hostname of address, eg: www.example.com, 127.0.0.1, ff::ff
	Hostname() string
	// IP return net.IP, if address is ip else return nil
	IP() net.IP
	// Port return port of address
	Port() Port
	// Type return type of address, domain or ip
	Type() Type

	net.Addr

	WithResolver(dns.DNS)

	Zone() string // IPv6 scoped addressing zone
	UDPAddr() *net.UDPAddr
	TCPAddr() *net.TCPAddr
	// IPHost if address is ip, return host, else resolve domain to ip and return JoinHostPort(ip,port)
	IPHost() string
}

func ParseAddress

func ParseAddress(network, addr string) (ad Address, _ error)

func ParseAddressSplit

func ParseAddressSplit(network, addr string, por uint16) (ad Address)

func ParseIPAddr

func ParseIPAddr(ad *net.IPAddr) Address

func ParseSysAddr

func ParseSysAddr(ad net.Addr) (Address, error)

func ParseTCPAddress

func ParseTCPAddress(ad *net.TCPAddr) Address

func ParseUDPAddr

func ParseUDPAddr(ad *net.UDPAddr) Address

func ParseUnixAddr

func ParseUnixAddr(ad *net.UnixAddr) Address

type DomainAddr

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

func (DomainAddr) Hostname

func (d DomainAddr) Hostname() string

func (DomainAddr) IP

func (d DomainAddr) IP() net.IP

func (DomainAddr) IPHost

func (d DomainAddr) IPHost() string

func (DomainAddr) Network

func (d DomainAddr) Network() string

func (DomainAddr) Port

func (d DomainAddr) Port() Port

func (DomainAddr) String

func (d DomainAddr) String() string

func (DomainAddr) TCPAddr

func (d DomainAddr) TCPAddr() *net.TCPAddr

func (DomainAddr) Type

func (d DomainAddr) Type() Type

func (DomainAddr) UDPAddr

func (d DomainAddr) UDPAddr() *net.UDPAddr

func (*DomainAddr) WithResolver

func (d *DomainAddr) WithResolver(resolver dns.DNS)

func (DomainAddr) Zone

func (d DomainAddr) Zone() string

type IPAddr

type IPAddr struct {
	Address
	// contains filtered or unexported fields
}

func (IPAddr) IP

func (i IPAddr) IP() net.IP

func (IPAddr) IPHost

func (i IPAddr) IPHost() string

func (IPAddr) TCPAddr

func (i IPAddr) TCPAddr() *net.TCPAddr

func (IPAddr) Type

func (i IPAddr) Type() Type

func (IPAddr) UDPAddr

func (i IPAddr) UDPAddr() *net.UDPAddr

func (IPAddr) Zone

func (i IPAddr) Zone() string

type PacketProxy

type PacketProxy interface {
	PacketConn(Address) (net.PacketConn, error)
}

type Port

type Port interface {
	Port() uint16
	String() string
}

type Proxy

type Proxy interface {
	StreamProxy
	PacketProxy
}

func NewErrProxy

func NewErrProxy(err error) Proxy

type StreamProxy

type StreamProxy interface {
	Conn(Address) (net.Conn, error)
}

type Type

type Type string
const (
	DOMAIN Type = "DOMAIN"
	IP     Type = "IP"
	UNIX   Type = "UNIX"
	EMPTY  Type = "EMPTY"
)

Jump to

Keyboard shortcuts

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