Documentation
¶
Index ¶
Constants ¶
View Source
const ( ATypIPv4 = 1 ATypDomainName = 3 ATypIPv6 = 4 TCP NetWork = iota UDP )
Socks addr type
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdapterType ¶
type AdapterType int
AdapterType is enum of adapter type
const ( Shadowsocks AdapterType = iota ShadowsocksR Snell Socks5 Http Vmess Trojan Direct )
Adapter Type
func (AdapterType) String ¶
func (at AdapterType) String() string
type Conn ¶
type Conn interface {
net.Conn
Connection
}
type Connection ¶
type Connection interface {
Chains() Chain
AppendToChains(adapter ProxyAdapter)
}
type Metadata ¶
type Metadata struct {
NetWork NetWork `json:"network"`
DstIP net.IP `json:"destinationIP"`
DstPort string `json:"destinationPort"`
AddrType int `json:"-"`
Host string `json:"host"`
}
Metadata is used to store connection address
func NewMetadata ¶ added in v0.1.8
func (*Metadata) RemoteAddress ¶
func (*Metadata) SourceAddress ¶
type PacketConn ¶
type PacketConn interface {
net.PacketConn
Connection
}
type ProxyAdapter ¶
type ProxyAdapter interface {
Name() string
Type() AdapterType
StreamConn(c net.Conn, metadata *Metadata) (net.Conn, error)
DialContext(ctx context.Context, metadata *Metadata) (Conn, error)
DialUDP(metadata *Metadata) (PacketConn, error)
SupportUDP() bool
Addr() string
SetDialer(dialer ProxyAdapter)
}
type ServerAdapter ¶
type UDPPacket ¶
type UDPPacket interface {
// Data get the payload of UDP Packet
Data() []byte
// WriteBack writes the payload with source IP/Port equals addr
// - variable source IP/Port is important to STUN
// - if addr is not provided, WriteBack will write out UDP packet with SourceIP/Port equals to original Target,
// this is important when using Fake-IP.
WriteBack(b []byte, addr net.Addr) (n int, err error)
// Drop call after packet is used, could recycle buffer in this function.
Drop()
// LocalAddr returns the source IP/Port of packet
LocalAddr() net.Addr
}
UDPPacket contains the data of UDP packet, and offers control/info of UDP packet's source
type UdpConn ¶ added in v0.1.9
type UdpConn struct {
net.PacketConn
Addr *net.UDPAddr
}
func (UdpConn) RemoteAddr ¶ added in v0.1.9
Click to show internal directories.
Click to hide internal directories.