Documentation ¶
Index ¶
Constants ¶
View Source
const ( AddrIPv4 uint8 = 1 AddrIPv6 = 2 AddrDomain = 3 )
Variables ¶
View Source
var (
ErrorEmptyChain = errors.New("empty chain")
)
View Source
var (
ErrorInvalidNode = errors.New("invalid node")
)
Functions ¶
Types ¶
type Chain ¶
type Chain struct { Retries int // contains filtered or unexported fields }
func (*Chain) DialContext ¶
type Client ¶
type Client struct { Connector Transporter }
type Connector ¶
type Connector interface {
Connect(ctx context.Context, conn net.Conn, network, address string) (net.Conn, error)
}
func UDPOverTCPTunnelConnector ¶
func UDPOverTCPTunnelConnector() Connector
UDPOverTCPTunnelConnector creates a connector for UDP-over-TCP
type DatagramPacket ¶
type DatagramPacket struct { Type uint8 // [1]byte Host string // [?]byte, first byte is length if it's a domain Port uint16 // [2]byte DataLength uint16 // [2]byte Data []byte // []byte }
func NewDatagramPacket ¶
func NewDatagramPacket(addr net.Addr, data []byte) *DatagramPacket
func ReadDatagramPacket ¶
func ReadDatagramPacket(r io.Reader) (*DatagramPacket, error)
func (*DatagramPacket) Addr ¶
func (addr *DatagramPacket) Addr() string
type Handler ¶
type Handler interface { Init(options ...HandlerOptionFunc) Handle(context.Context, net.Conn) }
func TCPHandler ¶
func TCPHandler() Handler
func TunHandler ¶
func TunHandler(opts ...HandlerOptionFunc) Handler
type HandlerOptionFunc ¶
type HandlerOptionFunc func(opts *HandlerOptions)
func ChainHandlerOption ¶
func ChainHandlerOption(chain *Chain) HandlerOptionFunc
func IPRoutesHandlerOption ¶
func IPRoutesHandlerOption(routes ...tun.IPRoute) HandlerOptionFunc
func NodeHandlerOption ¶
func NodeHandlerOption(node *Node) HandlerOptionFunc
type Node ¶
type Node struct { Addr string Protocol string Transport string Remote string Values url.Values Client *Client }
type Transporter ¶
func TCPTransporter ¶
func TCPTransporter() Transporter
Click to show internal directories.
Click to hide internal directories.