common

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2018 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UDP_BUFFER_POOL_SIZE = 1024 * 10
	UDP_BUFFER_SIZE      = 1024 * 4

	DNS_BUFFER_POOL_SIZE = 1024 * 4
	DNS_BUFFER_SIZE      = 1024 * 2

	UDP_OOB_POOL_SIZE   = 512
	UDP_OOB_BUFFER_SIZE = 1024 * 2

	CHANNEL_QUEUE_LENGTH = 5

	DOMAIN_BLACK_LIST = true
	DOMAIN_WHITE_LIST = false
)
View Source
const (
	AtTypeUdpIpv4 = 51
	AtTypeUdpIpv6 = 52
)

Variables

This section is empty.

Functions

func AddrToString

func AddrToString(a socks.Addr) string

func GenerateDomainStubs

func GenerateDomainStubs(domain string) []string

func PipeCommand

func PipeCommand(cmds ...*exec.Cmd) (output []byte, err error)

func ReadShadowsocksHeader

func ReadShadowsocksHeader(r io.Reader) (bool, socks.Addr, error)

func ReadUdpOverTcp

func ReadUdpOverTcp(r io.Reader, buffer []byte) (int, error)

func WriteUdpOverTcp

func WriteUdpOverTcp(w io.Writer, buffer []byte) (int, error)

Types

type DNSServerInterface

type DNSServerInterface interface {
	ServerDNSPacket(msg *dns.Msg) ([]byte, error)
}

type DnsSyncResolver added in v1.0.1

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

func (*DnsSyncResolver) GetDnsId added in v1.0.1

func (c *DnsSyncResolver) GetDnsId() uint16

func (*DnsSyncResolver) ProcessDnsResponse added in v1.0.1

func (c *DnsSyncResolver) ProcessDnsResponse(logger *zap.Logger, data []byte)

func (*DnsSyncResolver) PutDnsId added in v1.0.1

func (c *DnsSyncResolver) PutDnsId(dnsId uint16)

func (*DnsSyncResolver) Start added in v1.0.1

func (c *DnsSyncResolver) Start()

func (*DnsSyncResolver) Stop added in v1.0.1

func (c *DnsSyncResolver) Stop()

func (*DnsSyncResolver) WaitResponse added in v1.0.1

func (c *DnsSyncResolver) WaitResponse(dnsId uint16, timeout time.Duration) (response *dns.Msg, err error)

type LeakyBuffer

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

func NewLeakyBuffer

func NewLeakyBuffer(poolSize int, bufferSize int) (ret *LeakyBuffer)

func (*LeakyBuffer) Get

func (c *LeakyBuffer) Get() []byte

func (*LeakyBuffer) GetBufferSize

func (c *LeakyBuffer) GetBufferSize() int

func (*LeakyBuffer) Put

func (c *LeakyBuffer) Put(buffer []byte)

type ProxyClientInterface

type ProxyClientInterface interface {
	ExchangeDNS(dnsAddr string, data []byte, timeout time.Duration) (response *dns.Msg, err error)
	SetDNSProcessor(server DNSServerInterface)
	HandleUDP(buffer []byte, srcAddr *net.UDPAddr, dstAddr *net.UDPAddr, dataLen int)
	GetUDPBuffer() []byte
	PutUDPBuffer(buffer []byte)
}

Jump to

Keyboard shortcuts

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