adapters

package
v0.0.0-...-3d7e2af Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2019 License: MIT Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Base

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

func (*Base) Destroy

func (b *Base) Destroy()

func (*Base) DialUDP

func (b *Base) DialUDP(metadata *C.Metadata) (C.PacketConn, net.Addr, error)

func (*Base) MarshalJSON

func (b *Base) MarshalJSON() ([]byte, error)

func (*Base) Name

func (b *Base) Name() string

func (*Base) SupportUDP

func (b *Base) SupportUDP() bool

func (*Base) Type

func (b *Base) Type() C.AdapterType

type Direct

type Direct struct {
	*Base
}

func NewDirect

func NewDirect() *Direct

func (*Direct) DialContext

func (d *Direct) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*Direct) DialUDP

func (d *Direct) DialUDP(metadata *C.Metadata) (C.PacketConn, net.Addr, error)

type Fallback

type Fallback struct {
	*Base
	// contains filtered or unexported fields
}

func NewFallback

func NewFallback(option FallbackOption, proxies []C.Proxy) (*Fallback, error)

func (*Fallback) Destroy

func (f *Fallback) Destroy()

func (*Fallback) DialContext

func (f *Fallback) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*Fallback) DialUDP

func (f *Fallback) DialUDP(metadata *C.Metadata) (C.PacketConn, net.Addr, error)

func (*Fallback) MarshalJSON

func (f *Fallback) MarshalJSON() ([]byte, error)

func (*Fallback) Now

func (f *Fallback) Now() string

func (*Fallback) SupportUDP

func (f *Fallback) SupportUDP() bool

type FallbackOption

type FallbackOption struct {
	Name     string   `proxy:"name"`
	Proxies  []string `proxy:"proxies"`
	URL      string   `proxy:"url"`
	Interval int      `proxy:"interval"`
}

type Http

type Http struct {
	*Base
	// contains filtered or unexported fields
}

func NewHttp

func NewHttp(option HttpOption) *Http

func (*Http) DialContext

func (h *Http) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

type HttpOption

type HttpOption struct {
	Name           string `proxy:"name"`
	Server         string `proxy:"server"`
	Port           int    `proxy:"port"`
	UserName       string `proxy:"username,omitempty"`
	Password       string `proxy:"password,omitempty"`
	TLS            bool   `proxy:"tls,omitempty"`
	SkipCertVerify bool   `proxy:"skip-cert-verify,omitempty"`
}

type LoadBalance

type LoadBalance struct {
	*Base
	// contains filtered or unexported fields
}

func NewLoadBalance

func NewLoadBalance(option LoadBalanceOption, proxies []C.Proxy) (*LoadBalance, error)

func (*LoadBalance) Destroy

func (lb *LoadBalance) Destroy()

func (*LoadBalance) DialContext

func (lb *LoadBalance) DialContext(ctx context.Context, metadata *C.Metadata) (c C.Conn, err error)

func (*LoadBalance) DialUDP

func (lb *LoadBalance) DialUDP(metadata *C.Metadata) (pc C.PacketConn, addr net.Addr, err error)

func (*LoadBalance) MarshalJSON

func (lb *LoadBalance) MarshalJSON() ([]byte, error)

func (*LoadBalance) SupportUDP

func (lb *LoadBalance) SupportUDP() bool

type LoadBalanceOption

type LoadBalanceOption struct {
	Name     string   `proxy:"name"`
	Proxies  []string `proxy:"proxies"`
	URL      string   `proxy:"url"`
	Interval int      `proxy:"interval"`
}

type NopConn

type NopConn struct{}

func (*NopConn) Close

func (rw *NopConn) Close() error

Close is fake function for net.Conn

func (*NopConn) LocalAddr

func (rw *NopConn) LocalAddr() net.Addr

LocalAddr is fake function for net.Conn

func (*NopConn) Read

func (rw *NopConn) Read(b []byte) (int, error)

func (*NopConn) RemoteAddr

func (rw *NopConn) RemoteAddr() net.Addr

RemoteAddr is fake function for net.Conn

func (*NopConn) SetDeadline

func (rw *NopConn) SetDeadline(time.Time) error

SetDeadline is fake function for net.Conn

func (*NopConn) SetReadDeadline

func (rw *NopConn) SetReadDeadline(time.Time) error

SetReadDeadline is fake function for net.Conn

func (*NopConn) SetWriteDeadline

func (rw *NopConn) SetWriteDeadline(time.Time) error

SetWriteDeadline is fake function for net.Conn

func (*NopConn) Write

func (rw *NopConn) Write(b []byte) (int, error)

type Proxy

type Proxy struct {
	C.ProxyAdapter
	// contains filtered or unexported fields
}

func NewProxy

func NewProxy(adapter C.ProxyAdapter) *Proxy

func (*Proxy) Alive

func (p *Proxy) Alive() bool

func (*Proxy) DelayHistory

func (p *Proxy) DelayHistory() []C.DelayHistory

func (*Proxy) Dial

func (p *Proxy) Dial(metadata *C.Metadata) (C.Conn, error)

func (*Proxy) DialContext

func (p *Proxy) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*Proxy) LastDelay

func (p *Proxy) LastDelay() (delay uint16)

LastDelay return last history record. if proxy is not alive, return the max value of uint16.

func (*Proxy) MarshalJSON

func (p *Proxy) MarshalJSON() ([]byte, error)

func (*Proxy) URLTest

func (p *Proxy) URLTest(ctx context.Context, url string) (t uint16, err error)

URLTest get the delay for the specified URL

type ProxyGroupOption

type ProxyGroupOption struct {
	Name    string   `proxy:"name"`
	Proxies []string `proxy:"proxies"`
}

ProxyGroupOption contain the common options for all kind of ProxyGroup

type Reject

type Reject struct {
	*Base
}

func NewReject

func NewReject() *Reject

func (*Reject) DialContext

func (r *Reject) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

type Selector

type Selector struct {
	*Base
	// contains filtered or unexported fields
}

func NewSelector

func NewSelector(name string, proxies []C.Proxy) (*Selector, error)

func (*Selector) DialContext

func (s *Selector) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*Selector) DialUDP

func (s *Selector) DialUDP(metadata *C.Metadata) (C.PacketConn, net.Addr, error)

func (*Selector) MarshalJSON

func (s *Selector) MarshalJSON() ([]byte, error)

func (*Selector) Now

func (s *Selector) Now() string

func (*Selector) Set

func (s *Selector) Set(name string) error

func (*Selector) SupportUDP

func (s *Selector) SupportUDP() bool

type SelectorOption

type SelectorOption struct {
	Name    string   `proxy:"name"`
	Proxies []string `proxy:"proxies"`
}

type ShadowSocks

type ShadowSocks struct {
	*Base
	// contains filtered or unexported fields
}

func NewShadowSocks

func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error)

func (*ShadowSocks) DialContext

func (ss *ShadowSocks) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*ShadowSocks) DialUDP

func (ss *ShadowSocks) DialUDP(metadata *C.Metadata) (C.PacketConn, net.Addr, error)

func (*ShadowSocks) MarshalJSON

func (ss *ShadowSocks) MarshalJSON() ([]byte, error)

type ShadowSocksOption

type ShadowSocksOption struct {
	Name       string                 `proxy:"name"`
	Server     string                 `proxy:"server"`
	Port       int                    `proxy:"port"`
	Password   string                 `proxy:"password"`
	Cipher     string                 `proxy:"cipher"`
	UDP        bool                   `proxy:"udp,omitempty"`
	Plugin     string                 `proxy:"plugin,omitempty"`
	PluginOpts map[string]interface{} `proxy:"plugin-opts,omitempty"`

	// deprecated when bump to 1.0
	Obfs     string `proxy:"obfs,omitempty"`
	ObfsHost string `proxy:"obfs-host,omitempty"`
}

type ShadowsocksR

type ShadowsocksR struct {
	*Base

	ObfsData     interface{}
	ProtocolData interface{}
	// contains filtered or unexported fields
}

func NewShadowsocksR

func NewShadowsocksR(ssrop ShadowsocksROption) (*ShadowsocksR, error)

func (*ShadowsocksR) DialContext

func (ssrins *ShadowsocksR) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*ShadowsocksR) DialUDP

func (ssr *ShadowsocksR) DialUDP(metadata *C.Metadata) (pac C.PacketConn, netaddr net.Addr, err error)

func (*ShadowsocksR) MarshalJSON

func (ssr *ShadowsocksR) MarshalJSON() ([]byte, error)

type ShadowsocksROption

type ShadowsocksROption struct {
	Name          string `proxy:"name"`
	Server        string `proxy:"server"`
	Port          int    `proxy:"port"`
	Password      string `proxy:"password"`
	Cipher        string `proxy:"cipher"`
	Protocol      string `proxy:"protocol"`
	ProtocolParam string `proxy:"protocolparam"`
	Obfs          string `proxy:"obfs"`
	ObfsParam     string `proxy:"obfsparam"`
}

type Snell

type Snell struct {
	*Base
	// contains filtered or unexported fields
}

func NewSnell

func NewSnell(option SnellOption) (*Snell, error)

func (*Snell) DialContext

func (s *Snell) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

type SnellOption

type SnellOption struct {
	Name     string                 `proxy:"name"`
	Server   string                 `proxy:"server"`
	Port     int                    `proxy:"port"`
	Psk      string                 `proxy:"psk"`
	ObfsOpts map[string]interface{} `proxy:"obfs-opts,omitempty"`
}

type Socks5

type Socks5 struct {
	*Base
	// contains filtered or unexported fields
}

func NewSocks5

func NewSocks5(option Socks5Option) *Socks5

func (*Socks5) DialContext

func (ss *Socks5) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*Socks5) DialUDP

func (ss *Socks5) DialUDP(metadata *C.Metadata) (_ C.PacketConn, _ net.Addr, err error)

type Socks5Option

type Socks5Option struct {
	Name           string `proxy:"name"`
	Server         string `proxy:"server"`
	Port           int    `proxy:"port"`
	UserName       string `proxy:"username,omitempty"`
	Password       string `proxy:"password,omitempty"`
	TLS            bool   `proxy:"tls,omitempty"`
	UDP            bool   `proxy:"udp,omitempty"`
	SkipCertVerify bool   `proxy:"skip-cert-verify,omitempty"`
}

type URLTest

type URLTest struct {
	*Base
	// contains filtered or unexported fields
}

func NewURLTest

func NewURLTest(option URLTestOption, proxies []C.Proxy) (*URLTest, error)

func (*URLTest) Destroy

func (u *URLTest) Destroy()

func (*URLTest) DialContext

func (u *URLTest) DialContext(ctx context.Context, metadata *C.Metadata) (c C.Conn, err error)

func (*URLTest) DialUDP

func (u *URLTest) DialUDP(metadata *C.Metadata) (C.PacketConn, net.Addr, error)

func (*URLTest) MarshalJSON

func (u *URLTest) MarshalJSON() ([]byte, error)

func (*URLTest) Now

func (u *URLTest) Now() string

func (*URLTest) SupportUDP

func (u *URLTest) SupportUDP() bool

type URLTestOption

type URLTestOption struct {
	Name     string   `proxy:"name"`
	Proxies  []string `proxy:"proxies"`
	URL      string   `proxy:"url"`
	Interval int      `proxy:"interval"`
}

type Vmess

type Vmess struct {
	*Base
	// contains filtered or unexported fields
}

func NewVmess

func NewVmess(option VmessOption) (*Vmess, error)

func (*Vmess) DialContext

func (v *Vmess) DialContext(ctx context.Context, metadata *C.Metadata) (C.Conn, error)

func (*Vmess) DialUDP

func (v *Vmess) DialUDP(metadata *C.Metadata) (C.PacketConn, net.Addr, error)

type VmessOption

type VmessOption struct {
	Name           string            `proxy:"name"`
	Server         string            `proxy:"server"`
	Port           int               `proxy:"port"`
	UUID           string            `proxy:"uuid"`
	AlterID        int               `proxy:"alterId"`
	Cipher         string            `proxy:"cipher"`
	TLS            bool              `proxy:"tls,omitempty"`
	UDP            bool              `proxy:"udp,omitempty"`
	Network        string            `proxy:"network,omitempty"`
	WSPath         string            `proxy:"ws-path,omitempty"`
	WSHeaders      map[string]string `proxy:"ws-headers,omitempty"`
	SkipCertVerify bool              `proxy:"skip-cert-verify,omitempty"`
}

Jump to

Keyboard shortcuts

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