SYMBOL INDEX (1448 symbols across 86 files) FILE: auth.go type Authenticator (line 12) | type Authenticator interface type LocalAuthenticator (line 17) | type LocalAuthenticator struct method Authenticate (line 33) | func (au *LocalAuthenticator) Authenticate(user, password string) bool { method Add (line 50) | func (au *LocalAuthenticator) Add(k, v string) { method Reload (line 60) | func (au *LocalAuthenticator) Reload(r io.Reader) error { method Period (line 127) | func (au *LocalAuthenticator) Period() time.Duration { method Stop (line 139) | func (au *LocalAuthenticator) Stop() { method Stopped (line 148) | func (au *LocalAuthenticator) Stopped() bool { function NewLocalAuthenticator (line 25) | func NewLocalAuthenticator(kvs map[string]string) *LocalAuthenticator { FILE: auth_test.go function TestLocalAuthenticator (line 51) | func TestLocalAuthenticator(t *testing.T) { function TestLocalAuthenticatorReload (line 146) | func TestLocalAuthenticatorReload(t *testing.T) { FILE: bypass.go type Matcher (line 19) | type Matcher interface function NewMatcher (line 29) | func NewMatcher(pattern string) Matcher { type ipMatcher (line 42) | type ipMatcher struct method Match (line 53) | func (m *ipMatcher) Match(ip string) bool { method String (line 60) | func (m *ipMatcher) String() string { function IPMatcher (line 47) | func IPMatcher(ip net.IP) Matcher { type cidrMatcher (line 64) | type cidrMatcher struct method Match (line 75) | func (m *cidrMatcher) Match(ip string) bool { method String (line 82) | func (m *cidrMatcher) String() string { function CIDRMatcher (line 69) | func CIDRMatcher(inet *net.IPNet) Matcher { type domainMatcher (line 86) | type domainMatcher struct method Match (line 106) | func (m *domainMatcher) Match(domain string) bool { method String (line 117) | func (m *domainMatcher) String() string { function DomainMatcher (line 94) | func DomainMatcher(pattern string) Matcher { type Bypass (line 123) | type Bypass struct method Contains (line 156) | func (bp *Bypass) Contains(addr string) bool { method AddMatchers (line 190) | func (bp *Bypass) AddMatchers(matchers ...Matcher) { method Matchers (line 198) | func (bp *Bypass) Matchers() []Matcher { method Reversed (line 206) | func (bp *Bypass) Reversed() bool { method Reload (line 214) | func (bp *Bypass) Reload(r io.Reader) error { method Period (line 259) | func (bp *Bypass) Period() time.Duration { method Stop (line 271) | func (bp *Bypass) Stop() { method Stopped (line 280) | func (bp *Bypass) Stopped() bool { method String (line 289) | func (bp *Bypass) String() string { function NewBypass (line 133) | func NewBypass(reversed bool, matchers ...Matcher) *Bypass { function NewBypassPatterns (line 143) | func NewBypassPatterns(reversed bool, patterns ...string) *Bypass { FILE: bypass_test.go function TestBypassContains (line 160) | func TestBypassContains(t *testing.T) { function TestByapssReload (line 272) | func TestByapssReload(t *testing.T) { FILE: chain.go type Chain (line 20) | type Chain struct method newRoute (line 41) | func (c *Chain) newRoute(nodes ...Node) *Chain { method Nodes (line 53) | func (c *Chain) Nodes() (nodes []Node) { method NodeGroups (line 63) | func (c *Chain) NodeGroups() []*NodeGroup { method LastNode (line 70) | func (c *Chain) LastNode() Node { method LastNodeGroup (line 79) | func (c *Chain) LastNodeGroup() *NodeGroup { method AddNode (line 87) | func (c *Chain) AddNode(nodes ...Node) { method AddNodeGroup (line 97) | func (c *Chain) AddNodeGroup(groups ...*NodeGroup) { method IsEmpty (line 108) | func (c *Chain) IsEmpty() bool { method Dial (line 114) | func (c *Chain) Dial(address string, opts ...ChainOption) (conn net.Co... method DialContext (line 119) | func (c *Chain) DialContext(ctx context.Context, network, address stri... method dialWithOptions (line 142) | func (c *Chain) dialWithOptions(ctx context.Context, network, address ... method resolve (line 223) | func (*Chain) resolve(addr string, resolver Resolver, hosts *Hosts) st... method Conn (line 247) | func (c *Chain) Conn(opts ...ChainOption) (conn net.Conn, err error) { method getConn (line 278) | func (c *Chain) getConn(ctx context.Context) (conn net.Conn, err error) { method selectRoute (line 325) | func (c *Chain) selectRoute() (route *Chain, err error) { method selectRouteFor (line 330) | func (c *Chain) selectRouteFor(addr string) (route *Chain, err error) { function NewChain (line 31) | func NewChain(nodes ...Node) *Chain { type ChainOptions (line 369) | type ChainOptions struct type ChainOption (line 378) | type ChainOption function RetryChainOption (line 381) | func RetryChainOption(retries int) ChainOption { function TimeoutChainOption (line 388) | func TimeoutChainOption(timeout time.Duration) ChainOption { function HostsChainOption (line 395) | func HostsChainOption(hosts *Hosts) ChainOption { function ResolverChainOption (line 402) | func ResolverChainOption(resolver Resolver) ChainOption { FILE: client.go type Client (line 17) | type Client struct function Dial (line 26) | func Dial(addr string, options ...DialOption) (net.Conn, error) { function Handshake (line 31) | func Handshake(conn net.Conn, options ...HandshakeOption) (net.Conn, err... function Connect (line 36) | func Connect(conn net.Conn, addr string) (net.Conn, error) { type Connector (line 41) | type Connector interface type autoConnector (line 47) | type autoConnector struct method Connect (line 58) | func (c *autoConnector) Connect(conn net.Conn, address string, options... method ConnectContext (line 62) | func (c *autoConnector) ConnectContext(ctx context.Context, conn net.C... function AutoConnector (line 52) | func AutoConnector(user *url.Userinfo) Connector { type Transporter (line 75) | type Transporter interface type DialOptions (line 83) | type DialOptions struct type DialOption (line 90) | type DialOption function TimeoutDialOption (line 93) | func TimeoutDialOption(timeout time.Duration) DialOption { function ChainDialOption (line 100) | func ChainDialOption(chain *Chain) DialOption { function HostDialOption (line 107) | func HostDialOption(host string) DialOption { type HandshakeOptions (line 114) | type HandshakeOptions struct type HandshakeOption (line 129) | type HandshakeOption function AddrHandshakeOption (line 132) | func AddrHandshakeOption(addr string) HandshakeOption { function HostHandshakeOption (line 139) | func HostHandshakeOption(host string) HandshakeOption { function UserHandshakeOption (line 146) | func UserHandshakeOption(user *url.Userinfo) HandshakeOption { function TimeoutHandshakeOption (line 153) | func TimeoutHandshakeOption(timeout time.Duration) HandshakeOption { function IntervalHandshakeOption (line 160) | func IntervalHandshakeOption(interval time.Duration) HandshakeOption { function RetryHandshakeOption (line 167) | func RetryHandshakeOption(retry int) HandshakeOption { function TLSConfigHandshakeOption (line 174) | func TLSConfigHandshakeOption(config *tls.Config) HandshakeOption { function WSOptionsHandshakeOption (line 181) | func WSOptionsHandshakeOption(options *WSOptions) HandshakeOption { function KCPConfigHandshakeOption (line 188) | func KCPConfigHandshakeOption(config *KCPConfig) HandshakeOption { function QUICConfigHandshakeOption (line 195) | func QUICConfigHandshakeOption(config *QUICConfig) HandshakeOption { function SSHConfigHandshakeOption (line 202) | func SSHConfigHandshakeOption(config *SSHConfig) HandshakeOption { type ConnectOptions (line 209) | type ConnectOptions struct type ConnectOption (line 220) | type ConnectOption function AddrConnectOption (line 223) | func AddrConnectOption(addr string) ConnectOption { function TimeoutConnectOption (line 230) | func TimeoutConnectOption(timeout time.Duration) ConnectOption { function UserConnectOption (line 237) | func UserConnectOption(user *url.Userinfo) ConnectOption { function SelectorConnectOption (line 244) | func SelectorConnectOption(s gosocks5.Selector) ConnectOption { function UserAgentConnectOption (line 251) | func UserAgentConnectOption(ua string) ConnectOption { function NoTLSConnectOption (line 258) | func NoTLSConnectOption(b bool) ConnectOption { function NoDelayConnectOption (line 265) | func NoDelayConnectOption(b bool) ConnectOption { FILE: cmd/gost/cfg.go type baseConfig (line 21) | type baseConfig struct function parseBaseConfig (line 27) | func parseBaseConfig(s string) (*baseConfig, error) { function tlsConfig (line 48) | func tlsConfig(certFile, keyFile, caFile string) (*tls.Config, error) { function loadCA (line 72) | func loadCA(caFile string) (cp *x509.CertPool, err error) { function parseKCPConfig (line 87) | func parseKCPConfig(configFile string) (*gost.KCPConfig, error) { function parseUsers (line 104) | func parseUsers(authFile string) (users []*url.Userinfo, err error) { function parseAuthenticator (line 133) | func parseAuthenticator(s string) (gost.Authenticator, error) { function parseIP (line 151) | func parseIP(s string, port string) (ips []string) { function parseBypass (line 195) | func parseBypass(s string) *gost.Bypass { function parseResolver (line 226) | func parseResolver(cfg string) gost.Resolver { function parseHosts (line 283) | func parseHosts(s string) *gost.Hosts { function parseIPRoutes (line 298) | func parseIPRoutes(s string) (routes []gost.IPRoute) { FILE: cmd/gost/main.go function init (line 25) | func init() { function main (line 63) | func main() { function start (line 97) | func start() error { FILE: cmd/gost/peer.go type peerConfig (line 15) | type peerConfig struct method Validate (line 34) | func (cfg *peerConfig) Validate() { method Reload (line 37) | func (cfg *peerConfig) Reload(r io.Reader) error { method parse (line 87) | func (cfg *peerConfig) parse(r io.Reader) error { method Period (line 145) | func (cfg *peerConfig) Period() time.Duration { method Stop (line 153) | func (cfg *peerConfig) Stop() { method Stopped (line 162) | func (cfg *peerConfig) Stopped() bool { function newPeerConfig (line 28) | func newPeerConfig() *peerConfig { FILE: cmd/gost/route.go type stringList (line 19) | type stringList method String (line 21) | func (l *stringList) String() string { method Set (line 24) | func (l *stringList) Set(value string) error { type route (line 29) | type route struct method parseChain (line 37) | func (r *route) parseChain() (*gost.Chain, error) { method GenRouters (line 348) | func (r *route) GenRouters() ([]router, error) { function parseChainNode (line 95) | func parseChainNode(ns string) (nodes []gost.Node, err error) { type router (line 690) | type router struct method Serve (line 699) | func (r *router) Serve() error { method Close (line 704) | func (r *router) Close() error { FILE: common_test.go function init (line 19) | func init() { function proxyConn (line 51) | func proxyConn(client *Client, server *Server) (net.Conn, error) { function httpRoundtrip (line 67) | func httpRoundtrip(conn net.Conn, targetURL string, data []byte) (err er... function udpRoundtrip (line 100) | func udpRoundtrip(logger log.Logger, client *Client, server *Server, hos... function proxyRoundtrip (line 133) | func proxyRoundtrip(client *Client, server *Server, targetURL string, da... type udpRequest (line 156) | type udpRequest struct type udpResponseWriter (line 161) | type udpResponseWriter struct method Write (line 166) | func (w *udpResponseWriter) Write(p []byte) (int, error) { type udpHandlerFunc (line 170) | type udpHandlerFunc type udpTestServer (line 173) | type udpTestServer struct method Start (line 198) | func (s *udpTestServer) Start() { method serve (line 203) | func (s *udpTestServer) serve() { method Addr (line 238) | func (s *udpTestServer) Addr() string { method Close (line 242) | func (s *udpTestServer) Close() error { function newUDPTestServer (line 183) | func newUDPTestServer(handler udpHandlerFunc) *udpTestServer { FILE: dns.go function init (line 24) | func init() { type dnsHandler (line 34) | type dnsHandler struct method Init (line 48) | func (h *dnsHandler) Init(opts ...HandlerOption) { method Handle (line 58) | func (h *dnsHandler) Handle(conn net.Conn) { method dumpMsgHeader (line 109) | func (h *dnsHandler) dumpMsgHeader(m *dns.Msg) string { function DNSHandler (line 39) | func DNSHandler(raddr string, opts ...HandlerOption) Handler { type DNSOptions (line 120) | type DNSOptions struct type dnsListener (line 128) | type dnsListener struct method serve (line 222) | func (l *dnsListener) serve(w dnsResponseWriter, mq []byte) (err error) { method ServeDNS (line 241) | func (l *dnsListener) ServeDNS(w dns.ResponseWriter, m *dns.Msg) { method ServeHTTP (line 253) | func (l *dnsListener) ServeHTTP(w http.ResponseWriter, r *http.Request) { method Accept (line 295) | func (l *dnsListener) Accept() (conn net.Conn, err error) { method Close (line 303) | func (l *dnsListener) Close() error { method Addr (line 307) | func (l *dnsListener) Addr() net.Addr { function DNSListener (line 136) | func DNSListener(addr string, options *DNSOptions) (Listener, error) { type dnsServer (line 311) | type dnsServer interface type dohServer (line 316) | type dohServer struct method ListenAndServe (line 322) | func (s *dohServer) ListenAndServe() error { method Shutdown (line 331) | func (s *dohServer) Shutdown() error { type dnsServerConn (line 335) | type dnsServerConn struct method Read (line 352) | func (c *dnsServerConn) Read(b []byte) (n int, err error) { method Write (line 362) | func (c *dnsServerConn) Write(b []byte) (n int, err error) { method Close (line 373) | func (c *dnsServerConn) Close() error { method LocalAddr (line 382) | func (c *dnsServerConn) LocalAddr() net.Addr { method RemoteAddr (line 386) | func (c *dnsServerConn) RemoteAddr() net.Addr { method SetDeadline (line 390) | func (c *dnsServerConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 394) | func (c *dnsServerConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 398) | func (c *dnsServerConn) SetWriteDeadline(t time.Time) error { function newDNSServerConn (line 342) | func newDNSServerConn(laddr, raddr net.Addr) *dnsServerConn { type dnsResponseWriter (line 402) | type dnsResponseWriter interface type dohResponseWriter (line 407) | type dohResponseWriter struct method RemoteAddr (line 419) | func (w *dohResponseWriter) RemoteAddr() net.Addr { function newDoHResponseWriter (line 412) | func newDoHResponseWriter(raddr net.Addr, w http.ResponseWriter) dnsResp... FILE: examples/bench/cli.go function init (line 23) | func init() { function main (line 38) | func main() { function request (line 185) | func request(chain *gost.Chain, start <-chan struct{}) { FILE: examples/bench/srv.go function init (line 20) | func init() { function main (line 33) | func main() { function httpServer (line 54) | func httpServer() { function socks5Server (line 66) | func socks5Server() { function shadowServer (line 79) | func shadowServer() { function tlsServer (line 91) | func tlsServer() { function wsServer (line 103) | func wsServer() { function wssServer (line 115) | func wssServer() { function kcpServer (line 127) | func kcpServer() { function tcpForwardServer (line 137) | func tcpForwardServer() { function tcpRemoteForwardServer (line 147) | func tcpRemoteForwardServer() { function rudpForwardServer (line 177) | func rudpForwardServer() { function tcpRedirectServer (line 202) | func tcpRedirectServer() { function sshTunnelServer (line 212) | func sshTunnelServer() { function http2Server (line 224) | func http2Server() { function http2TunnelServer (line 238) | func http2TunnelServer() { function quicServer (line 255) | func quicServer() { function shadowUDPServer (line 267) | func shadowUDPServer() { function tlsConfig (line 340) | func tlsConfig() *tls.Config { function testServer (line 351) | func testServer() { FILE: examples/forward/direct/client.go function main (line 9) | func main() { function tcpForward (line 13) | func tcpForward() { FILE: examples/forward/direct/server.go function main (line 10) | func main() { function sshForwardServer (line 14) | func sshForwardServer() { function tlsConfig (line 76) | func tlsConfig() *tls.Config { FILE: examples/forward/remote/client.go function main (line 9) | func main() { function sshRemoteForward (line 13) | func sshRemoteForward() { FILE: examples/forward/remote/server.go function main (line 10) | func main() { function sshRemoteForwardServer (line 14) | func sshRemoteForwardServer() { function tlsConfig (line 76) | func tlsConfig() *tls.Config { FILE: examples/forward/udp/cli.go function init (line 15) | func init() { function main (line 23) | func main() { function udpEchoLoop (line 30) | func udpEchoLoop() { FILE: examples/forward/udp/direct.go function init (line 16) | func init() { function main (line 29) | func main() { function udpDirectForwardServer (line 33) | func udpDirectForwardServer() { FILE: examples/forward/udp/remote.go function init (line 16) | func init() { function main (line 29) | func main() { function udpRemoteForwardServer (line 33) | func udpRemoteForwardServer() { FILE: examples/forward/udp/srv.go function init (line 13) | func init() { function main (line 19) | func main() { function udpEchoServer (line 23) | func udpEchoServer() { FILE: examples/http2/http2.go function init (line 21) | func init() { function main (line 39) | func main() { function http2Server (line 43) | func http2Server() { function tlsConfig (line 119) | func tlsConfig() *tls.Config { FILE: examples/quic/quicc.go function init (line 17) | func init() { function main (line 31) | func main() { function tlsConfig (line 104) | func tlsConfig() *tls.Config { FILE: examples/quic/quics.go function init (line 16) | func init() { function main (line 30) | func main() { function quicServer (line 34) | func quicServer() { function tlsConfig (line 94) | func tlsConfig() *tls.Config { FILE: examples/ssh/sshc.go function init (line 17) | func init() { function main (line 31) | func main() { function tlsConfig (line 107) | func tlsConfig() *tls.Config { FILE: examples/ssh/sshd.go function init (line 16) | func init() { function main (line 30) | func main() { function sshTunnelServer (line 34) | func sshTunnelServer() { function tlsConfig (line 93) | func tlsConfig() *tls.Config { FILE: examples/ssu/ssu.go function main (line 13) | func main() { function ssuClient (line 17) | func ssuClient() { function toSocksAddr (line 52) | func toSocksAddr(addr net.Addr) *gosocks5.Addr { FILE: forward.go type forwardConnector (line 18) | type forwardConnector struct method Connect (line 26) | func (c *forwardConnector) Connect(conn net.Conn, address string, opti... method ConnectContext (line 30) | func (c *forwardConnector) ConnectContext(ctx context.Context, conn ne... function ForwardConnector (line 22) | func ForwardConnector() Connector { type baseForwardHandler (line 34) | type baseForwardHandler struct method Init (line 40) | func (h *baseForwardHandler) Init(options ...HandlerOption) { type tcpDirectForwardHandler (line 79) | type tcpDirectForwardHandler struct method Init (line 102) | func (h *tcpDirectForwardHandler) Init(options ...HandlerOption) { method Handle (line 106) | func (h *tcpDirectForwardHandler) Handle(conn net.Conn) { function TCPDirectForwardHandler (line 86) | func TCPDirectForwardHandler(raddr string, opts ...HandlerOption) Handler { type udpDirectForwardHandler (line 159) | type udpDirectForwardHandler struct method Init (line 182) | func (h *udpDirectForwardHandler) Init(options ...HandlerOption) { method Handle (line 186) | func (h *udpDirectForwardHandler) Handle(conn net.Conn) { function UDPDirectForwardHandler (line 166) | func UDPDirectForwardHandler(raddr string, opts ...HandlerOption) Handler { type tcpRemoteForwardHandler (line 224) | type tcpRemoteForwardHandler struct method Init (line 247) | func (h *tcpRemoteForwardHandler) Init(options ...HandlerOption) { method Handle (line 251) | func (h *tcpRemoteForwardHandler) Handle(conn net.Conn) { function TCPRemoteForwardHandler (line 231) | func TCPRemoteForwardHandler(raddr string, opts ...HandlerOption) Handler { type udpRemoteForwardHandler (line 290) | type udpRemoteForwardHandler struct method Init (line 313) | func (h *udpRemoteForwardHandler) Init(options ...HandlerOption) { method Handle (line 317) | func (h *udpRemoteForwardHandler) Handle(conn net.Conn) { function UDPRemoteForwardHandler (line 297) | func UDPRemoteForwardHandler(raddr string, opts ...HandlerOption) Handler { type tcpRemoteForwardListener (line 350) | type tcpRemoteForwardListener struct method isChainValid (line 385) | func (l *tcpRemoteForwardListener) isChainValid() bool { method listenLoop (line 398) | func (l *tcpRemoteForwardListener) listenLoop() { method Accept (line 438) | func (l *tcpRemoteForwardListener) Accept() (conn net.Conn, err error) { method accept (line 452) | func (l *tcpRemoteForwardListener) accept() (conn net.Conn, err error) { method muxAccept (line 475) | func (l *tcpRemoteForwardListener) muxAccept() (conn net.Conn, err err... method getSession (line 489) | func (l *tcpRemoteForwardListener) getSession() (s *muxSession, err er... method waitConnectSOCKS5 (line 545) | func (l *tcpRemoteForwardListener) waitConnectSOCKS5(conn net.Conn) (n... method Addr (line 585) | func (l *tcpRemoteForwardListener) Addr() net.Addr { method Close (line 592) | func (l *tcpRemoteForwardListener) Close() error { function TCPRemoteForwardListener (line 362) | func TCPRemoteForwardListener(addr string, chain *Chain) (Listener, erro... type udpRemoteForwardListener (line 609) | type udpRemoteForwardListener struct method isChainValid (line 656) | func (l *udpRemoteForwardListener) isChainValid() bool { method listenLoop (line 665) | func (l *udpRemoteForwardListener) listenLoop() { method connect (line 723) | func (l *udpRemoteForwardListener) connect() (conn net.PacketConn, err... method Accept (line 767) | func (l *udpRemoteForwardListener) Accept() (conn net.Conn, err error) { method Addr (line 776) | func (l *udpRemoteForwardListener) Addr() net.Addr { method Close (line 780) | func (l *udpRemoteForwardListener) Close() error { function UDPRemoteForwardListener (line 624) | func UDPRemoteForwardListener(addr string, chain *Chain, cfg *UDPListenC... FILE: forward_test.go function tcpDirectForwardRoundtrip (line 10) | func tcpDirectForwardRoundtrip(targetURL string, data []byte) error { function TestTCPDirectForward (line 39) | func TestTCPDirectForward(t *testing.T) { function BenchmarkTCPDirectForward (line 52) | func BenchmarkTCPDirectForward(b *testing.B) { function BenchmarkTCPDirectForwardParallel (line 90) | func BenchmarkTCPDirectForwardParallel(b *testing.B) { function udpDirectForwardRoundtrip (line 130) | func udpDirectForwardRoundtrip(t *testing.T, host string, data []byte) e... function TestUDPDirectForward (line 154) | func TestUDPDirectForward(t *testing.T) { function BenchmarkUDPDirectForward (line 167) | func BenchmarkUDPDirectForward(b *testing.B) { function BenchmarkUDPDirectForwardParallel (line 202) | func BenchmarkUDPDirectForwardParallel(b *testing.B) { function tcpRemoteForwardRoundtrip (line 239) | func tcpRemoteForwardRoundtrip(t *testing.T, targetURL string, data []by... function TestTCPRemoteForward (line 268) | func TestTCPRemoteForward(t *testing.T) { function udpRemoteForwardRoundtrip (line 281) | func udpRemoteForwardRoundtrip(t *testing.T, host string, data []byte) e... function TestUDPRemoteForward (line 305) | func TestUDPRemoteForward(t *testing.T) { FILE: ftcp.go type fakeTCPTransporter (line 12) | type fakeTCPTransporter struct method Dial (line 19) | func (tr *fakeTCPTransporter) Dial(addr string, options ...DialOption)... method Handshake (line 40) | func (tr *fakeTCPTransporter) Handshake(conn net.Conn, options ...Hand... method Multiplex (line 44) | func (tr *fakeTCPTransporter) Multiplex() bool { function FakeTCPTransporter (line 15) | func FakeTCPTransporter() Transporter { type FakeTCPListenConfig (line 49) | type FakeTCPListenConfig struct type fakeTCPListener (line 55) | type fakeTCPListener struct method listenLoop (line 89) | func (l *fakeTCPListener) listenLoop() { method Accept (line 133) | func (l *fakeTCPListener) Accept() (conn net.Conn, err error) { method Addr (line 145) | func (l *fakeTCPListener) Addr() net.Addr { method Close (line 149) | func (l *fakeTCPListener) Close() error { function FakeTCPListener (line 64) | func FakeTCPListener(addr string, cfg *FakeTCPListenConfig) (Listener, e... type fakeTCPConn (line 159) | type fakeTCPConn struct method Read (line 164) | func (c *fakeTCPConn) Read(b []byte) (n int, err error) { method Write (line 169) | func (c *fakeTCPConn) Write(b []byte) (n int, err error) { method RemoteAddr (line 173) | func (c *fakeTCPConn) RemoteAddr() net.Addr { FILE: gost.go constant Version (line 23) | Version = "2.12.0" function SetLogger (line 90) | func SetLogger(logger log.Logger) { function GenCertificate (line 95) | func GenCertificate() (cert tls.Certificate, err error) { function generateKeyPair (line 103) | func generateKeyPair() (rawCert, rawKey []byte, err error) { type readWriter (line 139) | type readWriter struct method Read (line 144) | func (rw *readWriter) Read(p []byte) (n int, err error) { method Write (line 148) | func (rw *readWriter) Write(p []byte) (n int, err error) { type nopConn (line 156) | type nopConn struct method Read (line 158) | func (c *nopConn) Read(b []byte) (n int, err error) { method Write (line 162) | func (c *nopConn) Write(b []byte) (n int, err error) { method Close (line 166) | func (c *nopConn) Close() error { method LocalAddr (line 170) | func (c *nopConn) LocalAddr() net.Addr { method RemoteAddr (line 174) | func (c *nopConn) RemoteAddr() net.Addr { method SetDeadline (line 178) | func (c *nopConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 182) | func (c *nopConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 186) | func (c *nopConn) SetWriteDeadline(t time.Time) error { function splitLine (line 191) | func splitLine(line string) []string { function connStateCallback (line 210) | func connStateCallback(conn net.Conn, cs http.ConnState) { FILE: handler.go type Handler (line 16) | type Handler interface type HandlerOptions (line 22) | type HandlerOptions struct type HandlerOption (line 50) | type HandlerOption function AddrHandlerOption (line 53) | func AddrHandlerOption(addr string) HandlerOption { function ChainHandlerOption (line 60) | func ChainHandlerOption(chain *Chain) HandlerOption { function UsersHandlerOption (line 67) | func UsersHandlerOption(users ...*url.Userinfo) HandlerOption { function AuthenticatorHandlerOption (line 84) | func AuthenticatorHandlerOption(au Authenticator) HandlerOption { function TLSConfigHandlerOption (line 91) | func TLSConfigHandlerOption(config *tls.Config) HandlerOption { function WhitelistHandlerOption (line 98) | func WhitelistHandlerOption(whitelist *Permissions) HandlerOption { function BlacklistHandlerOption (line 105) | func BlacklistHandlerOption(blacklist *Permissions) HandlerOption { function BypassHandlerOption (line 112) | func BypassHandlerOption(bypass *Bypass) HandlerOption { function StrategyHandlerOption (line 119) | func StrategyHandlerOption(strategy Strategy) HandlerOption { function MaxFailsHandlerOption (line 126) | func MaxFailsHandlerOption(n int) HandlerOption { function FailTimeoutHandlerOption (line 133) | func FailTimeoutHandlerOption(d time.Duration) HandlerOption { function RetryHandlerOption (line 140) | func RetryHandlerOption(retries int) HandlerOption { function TimeoutHandlerOption (line 147) | func TimeoutHandlerOption(timeout time.Duration) HandlerOption { function ResolverHandlerOption (line 154) | func ResolverHandlerOption(resolver Resolver) HandlerOption { function HostsHandlerOption (line 161) | func HostsHandlerOption(hosts *Hosts) HandlerOption { function ProbeResistHandlerOption (line 168) | func ProbeResistHandlerOption(pr string) HandlerOption { function KnockingHandlerOption (line 175) | func KnockingHandlerOption(host string) HandlerOption { function NodeHandlerOption (line 182) | func NodeHandlerOption(node Node) HandlerOption { function HostHandlerOption (line 189) | func HostHandlerOption(host string) HandlerOption { function IPsHandlerOption (line 196) | func IPsHandlerOption(ips []string) HandlerOption { function TCPModeHandlerOption (line 203) | func TCPModeHandlerOption(b bool) HandlerOption { function IPRoutesHandlerOption (line 210) | func IPRoutesHandlerOption(routes ...IPRoute) HandlerOption { function ProxyAgentHandlerOption (line 217) | func ProxyAgentHandlerOption(agent string) HandlerOption { function HTTPTunnelHandlerOption (line 224) | func HTTPTunnelHandlerOption(tunnelMode bool) HandlerOption { type autoHandler (line 230) | type autoHandler struct method Init (line 241) | func (h *autoHandler) Init(options ...HandlerOption) { method Handle (line 250) | func (h *autoHandler) Handle(conn net.Conn) { function AutoHandler (line 235) | func AutoHandler(opts ...HandlerOption) Handler { type bufferdConn (line 279) | type bufferdConn struct method Read (line 284) | func (c *bufferdConn) Read(b []byte) (int, error) { FILE: handler_test.go function autoHTTPProxyRoundtrip (line 11) | func autoHTTPProxyRoundtrip(targetURL string, data []byte, clientInfo *u... function TestAutoHTTPProxy (line 34) | func TestAutoHTTPProxy(t *testing.T) { function autoSocks5ProxyRoundtrip (line 58) | func autoSocks5ProxyRoundtrip(targetURL string, data []byte, clientInfo ... function TestAutoSOCKS5Proxy (line 80) | func TestAutoSOCKS5Proxy(t *testing.T) { function autoSOCKS4ProxyRoundtrip (line 113) | func autoSOCKS4ProxyRoundtrip(targetURL string, data []byte, options ...... function TestAutoSOCKS4Proxy (line 134) | func TestAutoSOCKS4Proxy(t *testing.T) { function autoSocks4aProxyRoundtrip (line 151) | func autoSocks4aProxyRoundtrip(targetURL string, data []byte, options ..... function TestAutoSOCKS4AProxy (line 173) | func TestAutoSOCKS4AProxy(t *testing.T) { function autoSSProxyRoundtrip (line 190) | func autoSSProxyRoundtrip(targetURL string, data []byte, clientInfo *url... function TestAutoSSProxy (line 212) | func TestAutoSSProxy(t *testing.T) { FILE: hosts.go type Host (line 14) | type Host struct function NewHost (line 21) | func NewHost(ip net.IP, hostname string, aliases ...string) Host { type Hosts (line 34) | type Hosts struct method AddHost (line 50) | func (h *Hosts) AddHost(host ...Host) { method Lookup (line 58) | func (h *Hosts) Lookup(host string) (ip net.IP) { method Reload (line 85) | func (h *Hosts) Reload(r io.Reader) error { method Period (line 132) | func (h *Hosts) Period() time.Duration { method Stop (line 144) | func (h *Hosts) Stop() { method Stopped (line 153) | func (h *Hosts) Stopped() bool { function NewHosts (line 42) | func NewHosts(hosts ...Host) *Hosts { FILE: hosts_test.go function TestHostsLookup (line 29) | func TestHostsLookup(t *testing.T) { function TestHostsReload (line 105) | func TestHostsReload(t *testing.T) { FILE: http.go type httpConnector (line 22) | type httpConnector struct method Connect (line 32) | func (c *httpConnector) Connect(conn net.Conn, address string, options... method ConnectContext (line 36) | func (c *httpConnector) ConnectContext(ctx context.Context, conn net.C... function HTTPConnector (line 28) | func HTTPConnector(user *url.Userinfo) Connector { type httpHandler (line 108) | type httpHandler struct method Init (line 119) | func (h *httpHandler) Init(options ...HandlerOption) { method Handle (line 128) | func (h *httpHandler) Handle(conn net.Conn) { method handleRequest (line 141) | func (h *httpHandler) handleRequest(conn net.Conn, req *http.Request) { method handleProxy (line 313) | func (h *httpHandler) handleProxy(rw, cc io.ReadWriter, req *http.Requ... method authenticate (line 355) | func (h *httpHandler) authenticate(conn net.Conn, req *http.Request, r... method forwardRequest (line 437) | func (h *httpHandler) forwardRequest(conn net.Conn, req *http.Request,... function HTTPHandler (line 113) | func HTTPHandler(opts ...HandlerOption) Handler { function basicProxyAuth (line 501) | func basicProxyAuth(proxyAuth string) (username, password string, ok boo... FILE: http2.go type http2Connector (line 26) | type http2Connector struct method Connect (line 36) | func (c *http2Connector) Connect(conn net.Conn, address string, option... method ConnectContext (line 40) | func (c *http2Connector) ConnectContext(ctx context.Context, conn net.... function HTTP2Connector (line 32) | func HTTP2Connector(user *url.Userinfo) Connector { type http2Transporter (line 115) | type http2Transporter struct method Dial (line 132) | func (tr *http2Transporter) Dial(addr string, options ...DialOption) (... method Handshake (line 184) | func (tr *http2Transporter) Handshake(conn net.Conn, options ...Handsh... method Multiplex (line 188) | func (tr *http2Transporter) Multiplex() bool { function HTTP2Transporter (line 122) | func HTTP2Transporter(config *tls.Config) Transporter { type h2Transporter (line 193) | type h2Transporter struct method Dial (line 220) | func (tr *h2Transporter) Dial(addr string, options ...DialOption) (net... method Handshake (line 299) | func (tr *h2Transporter) Handshake(conn net.Conn, options ...Handshake... method Multiplex (line 307) | func (tr *h2Transporter) Multiplex() bool { function H2Transporter (line 201) | func H2Transporter(config *tls.Config, path string) Transporter { function H2CTransporter (line 213) | func H2CTransporter(path string) Transporter { type http2Handler (line 311) | type http2Handler struct method Init (line 323) | func (h *http2Handler) Init(options ...HandlerOption) { method Handle (line 332) | func (h *http2Handler) Handle(conn net.Conn) { method roundTrip (line 344) | func (h *http2Handler) roundTrip(w http.ResponseWriter, r *http.Reques... method authenticate (line 484) | func (h *http2Handler) authenticate(w http.ResponseWriter, r *http.Req... method forwardRequest (line 561) | func (h *http2Handler) forwardRequest(w http.ResponseWriter, r *http.R... method writeResponse (line 575) | func (h *http2Handler) writeResponse(w http.ResponseWriter, resp *http... function HTTP2Handler (line 316) | func HTTP2Handler(opts ...HandlerOption) Handler { type http2Listener (line 586) | type http2Listener struct method handleFunc (line 629) | func (l *http2Listener) handleFunc(w http.ResponseWriter, r *http.Requ... method Accept (line 645) | func (l *http2Listener) Accept() (conn net.Conn, err error) { method Addr (line 656) | func (l *http2Listener) Addr() net.Addr { method Close (line 660) | func (l *http2Listener) Close() (err error) { function HTTP2Listener (line 594) | func HTTP2Listener(addr string, config *tls.Config) (Listener, error) { type h2Listener (line 671) | type h2Listener struct method listenLoop (line 727) | func (l *h2Listener) listenLoop() { method handleLoop (line 740) | func (l *h2Listener) handleLoop(conn net.Conn) { method handleFunc (line 760) | func (l *h2Listener) handleFunc(w http.ResponseWriter, r *http.Request) { method upgrade (line 784) | func (l *h2Listener) upgrade(w http.ResponseWriter, r *http.Request) (... method Accept (line 817) | func (l *h2Listener) Accept() (conn net.Conn, err error) { function H2Listener (line 681) | func H2Listener(addr string, config *tls.Config, path string) (Listener,... function H2CListener (line 708) | func H2CListener(addr string, path string) (Listener, error) { type http2Conn (line 830) | type http2Conn struct method Read (line 838) | func (c *http2Conn) Read(b []byte) (n int, err error) { method Write (line 842) | func (c *http2Conn) Write(b []byte) (n int, err error) { method Close (line 846) | func (c *http2Conn) Close() (err error) { method LocalAddr (line 862) | func (c *http2Conn) LocalAddr() net.Addr { method RemoteAddr (line 866) | func (c *http2Conn) RemoteAddr() net.Addr { method SetDeadline (line 870) | func (c *http2Conn) SetDeadline(t time.Time) error { method SetReadDeadline (line 874) | func (c *http2Conn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 878) | func (c *http2Conn) SetWriteDeadline(t time.Time) error { type http2ServerConn (line 883) | type http2ServerConn struct method Read (line 889) | func (c *http2ServerConn) Read(b []byte) (n int, err error) { method Write (line 893) | func (c *http2ServerConn) Write(b []byte) (n int, err error) { method Close (line 897) | func (c *http2ServerConn) Close() error { method LocalAddr (line 906) | func (c *http2ServerConn) LocalAddr() net.Addr { method RemoteAddr (line 911) | func (c *http2ServerConn) RemoteAddr() net.Addr { method SetDeadline (line 916) | func (c *http2ServerConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 920) | func (c *http2ServerConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 924) | func (c *http2ServerConn) SetWriteDeadline(t time.Time) error { type http2ClientConn (line 929) | type http2ClientConn struct method Close (line 936) | func (c *http2ClientConn) Close() error { type flushWriter (line 943) | type flushWriter struct method Write (line 947) | func (fw flushWriter) Write(p []byte) (n int, err error) { FILE: http2_test.go function http2ProxyRoundtrip (line 16) | func http2ProxyRoundtrip(targetURL string, data []byte, clientInfo *url.... function TestHTTP2ProxyAuth (line 40) | func TestHTTP2ProxyAuth(t *testing.T) { function BenchmarkHTTP2Proxy (line 64) | func BenchmarkHTTP2Proxy(b *testing.B) { function BenchmarkHTTP2ProxyParallel (line 97) | func BenchmarkHTTP2ProxyParallel(b *testing.B) { function httpOverH2Roundtrip (line 132) | func httpOverH2Roundtrip(targetURL string, data []byte, tlsConfig *tls.C... function TestHTTPOverH2 (line 158) | func TestHTTPOverH2(t *testing.T) { function BenchmarkHTTPOverH2 (line 182) | func BenchmarkHTTPOverH2(b *testing.B) { function BenchmarkHTTPOverH2Parallel (line 215) | func BenchmarkHTTPOverH2Parallel(b *testing.B) { function socks5OverH2Roundtrip (line 250) | func socks5OverH2Roundtrip(targetURL string, data []byte, tlsConfig *tls... function TestSOCKS5OverH2 (line 276) | func TestSOCKS5OverH2(t *testing.T) { function socks4OverH2Roundtrip (line 302) | func socks4OverH2Roundtrip(targetURL string, data []byte, tlsConfig *tls... function TestSOCKS4OverH2 (line 324) | func TestSOCKS4OverH2(t *testing.T) { function socks4aOverH2Roundtrip (line 338) | func socks4aOverH2Roundtrip(targetURL string, data []byte, tlsConfig *tl... function TestSOCKS4AOverH2 (line 360) | func TestSOCKS4AOverH2(t *testing.T) { function ssOverH2Roundtrip (line 374) | func ssOverH2Roundtrip(targetURL string, data []byte, tlsConfig *tls.Con... function TestSSOverH2 (line 400) | func TestSSOverH2(t *testing.T) { function sniOverH2Roundtrip (line 426) | func sniOverH2Roundtrip(targetURL string, data []byte, host string) error { function TestSNIOverH2 (line 453) | func TestSNIOverH2(t *testing.T) { function h2ForwardTunnelRoundtrip (line 491) | func h2ForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestH2ForwardTunnel (line 519) | func TestH2ForwardTunnel(t *testing.T) { function httpOverH2CRoundtrip (line 532) | func httpOverH2CRoundtrip(targetURL string, data []byte, function TestHTTPOverH2C (line 558) | func TestHTTPOverH2C(t *testing.T) { function BenchmarkHTTPOverH2C (line 582) | func BenchmarkHTTPOverH2C(b *testing.B) { function BenchmarkHTTPOverH2CParallel (line 615) | func BenchmarkHTTPOverH2CParallel(b *testing.B) { function socks5OverH2CRoundtrip (line 650) | func socks5OverH2CRoundtrip(targetURL string, data []byte, function TestSOCKS5OverH2C (line 676) | func TestSOCKS5OverH2C(t *testing.T) { function socks4OverH2CRoundtrip (line 701) | func socks4OverH2CRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverH2C (line 723) | func TestSOCKS4OverH2C(t *testing.T) { function socks4aOverH2CRoundtrip (line 737) | func socks4aOverH2CRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverH2C (line 759) | func TestSOCKS4AOverH2C(t *testing.T) { function ssOverH2CRoundtrip (line 773) | func ssOverH2CRoundtrip(targetURL string, data []byte, function TestSSOverH2C (line 799) | func TestSSOverH2C(t *testing.T) { function sniOverH2CRoundtrip (line 824) | func sniOverH2CRoundtrip(targetURL string, data []byte, host string) err... function TestSNIOverH2C (line 851) | func TestSNIOverH2C(t *testing.T) { function h2cForwardTunnelRoundtrip (line 889) | func h2cForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestH2CForwardTunnel (line 917) | func TestH2CForwardTunnel(t *testing.T) { function TestHTTP2ProxyWithCodeProbeResist (line 930) | func TestHTTP2ProxyWithCodeProbeResist(t *testing.T) { function TestHTTP2ProxyWithWebProbeResist (line 962) | func TestHTTP2ProxyWithWebProbeResist(t *testing.T) { function TestHTTP2ProxyWithHostProbeResist (line 1006) | func TestHTTP2ProxyWithHostProbeResist(t *testing.T) { function TestHTTP2ProxyWithFileProbeResist (line 1077) | func TestHTTP2ProxyWithFileProbeResist(t *testing.T) { function TestHTTP2ProxyWithBypass (line 1114) | func TestHTTP2ProxyWithBypass(t *testing.T) { FILE: http_test.go function httpProxyRoundtrip (line 35) | func httpProxyRoundtrip(targetURL string, data []byte, clientInfo *url.U... function TestHTTPProxyAuth (line 59) | func TestHTTPProxyAuth(t *testing.T) { function TestHTTPProxyWithInvalidRequest (line 86) | func TestHTTPProxyWithInvalidRequest(t *testing.T) { function BenchmarkHTTPProxy (line 120) | func BenchmarkHTTPProxy(b *testing.B) { function BenchmarkHTTPProxyParallel (line 153) | func BenchmarkHTTPProxyParallel(b *testing.B) { function TestHTTPProxyWithCodeProbeResist (line 188) | func TestHTTPProxyWithCodeProbeResist(t *testing.T) { function TestHTTPProxyWithWebProbeResist (line 215) | func TestHTTPProxyWithWebProbeResist(t *testing.T) { function TestHTTPProxyWithHostProbeResist (line 258) | func TestHTTPProxyWithHostProbeResist(t *testing.T) { function TestHTTPProxyWithFileProbeResist (line 305) | func TestHTTPProxyWithFileProbeResist(t *testing.T) { function TestHTTPProxyWithBypass (line 341) | func TestHTTPProxyWithBypass(t *testing.T) { FILE: kcp.go type KCPConfig (line 29) | type KCPConfig struct method Init (line 57) | func (c *KCPConfig) Init() { type kcpTransporter (line 110) | type kcpTransporter struct method Dial (line 135) | func (tr *kcpTransporter) Dial(addr string, options ...DialOption) (co... method Handshake (line 176) | func (tr *kcpTransporter) Handshake(conn net.Conn, options ...Handshak... method initSession (line 216) | func (tr *kcpTransporter) initSession(addr string, conn net.Conn, conf... method Multiplex (line 269) | func (tr *kcpTransporter) Multiplex() bool { function KCPTransporter (line 117) | func KCPTransporter(config *KCPConfig) Transporter { type kcpListener (line 273) | type kcpListener struct method listenLoop (line 336) | func (l *kcpListener) listenLoop() { method mux (line 355) | func (l *kcpListener) mux(conn net.Conn) { method Accept (line 395) | func (l *kcpListener) Accept() (conn net.Conn, err error) { method Addr (line 406) | func (l *kcpListener) Addr() net.Addr { method Close (line 410) | func (l *kcpListener) Close() error { function KCPListener (line 281) | func KCPListener(addr string, config *KCPConfig) (Listener, error) { function blockCrypt (line 414) | func blockCrypt(key, crypt, salt string) (block kcp.BlockCrypt) { function snmpLogger (line 450) | func snmpLogger(format string, interval int) { type compStreamConn (line 481) | type compStreamConn struct method Read (line 495) | func (c *compStreamConn) Read(b []byte) (n int, err error) { method Write (line 499) | func (c *compStreamConn) Write(b []byte) (n int, err error) { method Close (line 509) | func (c *compStreamConn) Close() error { method LocalAddr (line 513) | func (c *compStreamConn) LocalAddr() net.Addr { method RemoteAddr (line 517) | func (c *compStreamConn) RemoteAddr() net.Addr { method SetDeadline (line 521) | func (c *compStreamConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 525) | func (c *compStreamConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 529) | func (c *compStreamConn) SetWriteDeadline(t time.Time) error { function newCompStreamConn (line 487) | func newCompStreamConn(conn net.Conn) *compStreamConn { FILE: kcp_test.go function httpOverKCPRoundtrip (line 11) | func httpOverKCPRoundtrip(targetURL string, data []byte, function TestHTTPOverKCP (line 37) | func TestHTTPOverKCP(t *testing.T) { function BenchmarkHTTPOverKCP (line 61) | func BenchmarkHTTPOverKCP(b *testing.B) { function BenchmarkHTTPOverKCPParallel (line 94) | func BenchmarkHTTPOverKCPParallel(b *testing.B) { function socks5OverKCPRoundtrip (line 129) | func socks5OverKCPRoundtrip(targetURL string, data []byte, function TestSOCKS5OverKCP (line 155) | func TestSOCKS5OverKCP(t *testing.T) { function socks4OverKCPRoundtrip (line 180) | func socks4OverKCPRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverKCP (line 202) | func TestSOCKS4OverKCP(t *testing.T) { function socks4aOverKCPRoundtrip (line 216) | func socks4aOverKCPRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverKCP (line 238) | func TestSOCKS4AOverKCP(t *testing.T) { function ssOverKCPRoundtrip (line 253) | func ssOverKCPRoundtrip(targetURL string, data []byte, function TestSSOverKCP (line 279) | func TestSSOverKCP(t *testing.T) { function sniOverKCPRoundtrip (line 304) | func sniOverKCPRoundtrip(targetURL string, data []byte, host string) err... function TestSNIOverKCP (line 331) | func TestSNIOverKCP(t *testing.T) { function kcpForwardTunnelRoundtrip (line 369) | func kcpForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestKCPForwardTunnel (line 397) | func TestKCPForwardTunnel(t *testing.T) { FILE: log.go function init (line 8) | func init() { type LogLogger (line 13) | type LogLogger struct method Log (line 17) | func (l *LogLogger) Log(v ...interface{}) { method Logf (line 22) | func (l *LogLogger) Logf(format string, v ...interface{}) { type NopLogger (line 27) | type NopLogger struct method Log (line 31) | func (l *NopLogger) Log(v ...interface{}) { method Logf (line 35) | func (l *NopLogger) Logf(format string, v ...interface{}) { FILE: mux.go type muxStreamConn (line 9) | type muxStreamConn struct method Read (line 14) | func (c *muxStreamConn) Read(b []byte) (n int, err error) { method Write (line 18) | func (c *muxStreamConn) Write(b []byte) (n int, err error) { method Close (line 22) | func (c *muxStreamConn) Close() error { type muxSession (line 26) | type muxSession struct method GetConn (line 31) | func (session *muxSession) GetConn() (net.Conn, error) { method Accept (line 39) | func (session *muxSession) Accept() (net.Conn, error) { method Close (line 47) | func (session *muxSession) Close() error { method IsClosed (line 54) | func (session *muxSession) IsClosed() bool { method NumStreams (line 61) | func (session *muxSession) NumStreams() int { FILE: node.go type Node (line 19) | type Node struct method MarkDead (line 124) | func (node *Node) MarkDead() { method ResetDead (line 132) | func (node *Node) ResetDead() { method Clone (line 140) | func (node *Node) Clone() Node { method Get (line 149) | func (node *Node) Get(key string) string { method GetBool (line 154) | func (node *Node) GetBool(key string) bool { method GetInt (line 160) | func (node *Node) GetInt(key string) int { method GetDuration (line 166) | func (node *Node) GetDuration(key string) time.Duration { method String (line 174) | func (node Node) String() string { function ParseNode (line 40) | func ParseNode(s string) (node Node, err error) { type NodeGroup (line 187) | type NodeGroup struct method AddNode (line 203) | func (group *NodeGroup) AddNode(node ...Node) { method SetNodes (line 215) | func (group *NodeGroup) SetNodes(nodes ...Node) []Node { method SetSelector (line 229) | func (group *NodeGroup) SetSelector(selector NodeSelector, opts ...Sel... method Nodes (line 241) | func (group *NodeGroup) Nodes() []Node { method GetNode (line 253) | func (group *NodeGroup) GetNode(i int) Node { method Next (line 265) | func (group *NodeGroup) Next() (node Node, err error) { function NewNodeGroup (line 196) | func NewNodeGroup(nodes ...Node) *NodeGroup { FILE: node_test.go function TestParseNode (line 33) | func TestParseNode(t *testing.T) { FILE: obfs.go constant maxTLSDataLen (line 29) | maxTLSDataLen = 16384 type obfsHTTPTransporter (line 32) | type obfsHTTPTransporter struct method Handshake (line 41) | func (tr *obfsHTTPTransporter) Handshake(conn net.Conn, options ...Han... function ObfsHTTPTransporter (line 37) | func ObfsHTTPTransporter() Transporter { type obfsHTTPListener (line 49) | type obfsHTTPListener struct method Accept (line 66) | func (l *obfsHTTPListener) Accept() (net.Conn, error) { function ObfsHTTPListener (line 54) | func ObfsHTTPListener(addr string) (Listener, error) { type obfsHTTPConn (line 75) | type obfsHTTPConn struct method Handshake (line 86) | func (c *obfsHTTPConn) Handshake() (err error) { method serverHandshake (line 107) | func (c *obfsHTTPConn) serverHandshake() (err error) { method clientHandshake (line 169) | func (c *obfsHTTPConn) clientHandshake() (err error) { method Read (line 196) | func (c *obfsHTTPConn) Read(b []byte) (n int, err error) { method drainHeader (line 213) | func (c *obfsHTTPConn) drainHeader() (err error) { method Write (line 246) | func (c *obfsHTTPConn) Write(b []byte) (n int, err error) { type obfsTLSTransporter (line 259) | type obfsTLSTransporter struct method Handshake (line 268) | func (tr *obfsTLSTransporter) Handshake(conn net.Conn, options ...Hand... function ObfsTLSTransporter (line 264) | func ObfsTLSTransporter() Transporter { type obfsTLSListener (line 276) | type obfsTLSListener struct method Accept (line 293) | func (l *obfsTLSListener) Accept() (net.Conn, error) { function ObfsTLSListener (line 281) | func ObfsTLSListener(addr string) (Listener, error) { constant tlsRecordStateType (line 327) | tlsRecordStateType = iota constant tlsRecordStateVersion0 (line 328) | tlsRecordStateVersion0 constant tlsRecordStateVersion1 (line 329) | tlsRecordStateVersion1 constant tlsRecordStateLength0 (line 330) | tlsRecordStateLength0 constant tlsRecordStateLength1 (line 331) | tlsRecordStateLength1 constant tlsRecordStateData (line 332) | tlsRecordStateData type obfsTLSParser (line 335) | type obfsTLSParser struct method Parse (line 352) | func (r *obfsTLSParser) Parse(b []byte) (int, error) { type obfsTLSConn (line 341) | type obfsTLSConn struct method Handshaked (line 451) | func (c *obfsTLSConn) Handshaked() bool { method Handshake (line 460) | func (c *obfsTLSConn) Handshake(payload []byte) (err error) { method clientHandshake (line 481) | func (c *obfsTLSConn) clientHandshake(payload []byte) error { method serverHandshake (line 526) | func (c *obfsTLSConn) serverHandshake() error { method Read (line 596) | func (c *obfsTLSConn) Read(b []byte) (n int, err error) { method Write (line 629) | func (c *obfsTLSConn) Write(b []byte) (n int, err error) { function ClientObfsTLSConn (line 432) | func ClientObfsTLSConn(conn net.Conn, host string) net.Conn { function ServerObfsTLSConn (line 442) | func ServerObfsTLSConn(conn net.Conn, host string) net.Conn { type obfs4Context (line 668) | type obfs4Context struct function Obfs4Init (line 678) | func Obfs4Init(node Node, isServeNode bool) error { function obfs4GetContext (line 720) | func obfs4GetContext(addr string) (obfs4Context, error) { function obfs4ServerURL (line 728) | func obfs4ServerURL(node Node) string { function obfs4ClientConn (line 745) | func obfs4ClientConn(addr string, conn net.Conn) (net.Conn, error) { function obfs4ServerConn (line 755) | func obfs4ServerConn(addr string, conn net.Conn) (net.Conn, error) { type obfs4Transporter (line 764) | type obfs4Transporter struct method Handshake (line 773) | func (tr *obfs4Transporter) Handshake(conn net.Conn, options ...Handsh... function Obfs4Transporter (line 769) | func Obfs4Transporter() Transporter { type obfs4Listener (line 789) | type obfs4Listener struct method Accept (line 817) | func (l *obfs4Listener) Accept() (net.Conn, error) { function Obfs4Listener (line 795) | func Obfs4Listener(addr string) (Listener, error) { type TempError (line 810) | type TempError struct method Timeout (line 814) | func (e TempError) Timeout() bool { return false } method Temporary (line 815) | func (e TempError) Temporary() bool { return true } FILE: obfs_test.go function httpOverObfsHTTPRoundtrip (line 11) | func httpOverObfsHTTPRoundtrip(targetURL string, data []byte, function TestHTTPOverObfsHTTP (line 37) | func TestHTTPOverObfsHTTP(t *testing.T) { function BenchmarkHTTPOverObfsHTTP (line 64) | func BenchmarkHTTPOverObfsHTTP(b *testing.B) { function BenchmarkHTTPOverObfsHTTPParallel (line 98) | func BenchmarkHTTPOverObfsHTTPParallel(b *testing.B) { function socks5OverObfsHTTPRoundtrip (line 133) | func socks5OverObfsHTTPRoundtrip(targetURL string, data []byte, function TestSOCKS5OverObfsHTTP (line 159) | func TestSOCKS5OverObfsHTTP(t *testing.T) { function socks4OverObfsHTTPRoundtrip (line 184) | func socks4OverObfsHTTPRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverObfsHTTP (line 206) | func TestSOCKS4OverObfsHTTP(t *testing.T) { function socks4aOverObfsHTTPRoundtrip (line 220) | func socks4aOverObfsHTTPRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverObfsHTTP (line 242) | func TestSOCKS4AOverObfsHTTP(t *testing.T) { function ssOverObfsHTTPRoundtrip (line 257) | func ssOverObfsHTTPRoundtrip(targetURL string, data []byte, function TestSSOverObfsHTTP (line 283) | func TestSSOverObfsHTTP(t *testing.T) { function sniOverObfsHTTPRoundtrip (line 308) | func sniOverObfsHTTPRoundtrip(targetURL string, data []byte, host string... function TestSNIOverObfsHTTP (line 335) | func TestSNIOverObfsHTTP(t *testing.T) { function httpOverObfs4Roundtrip (line 373) | func httpOverObfs4Roundtrip(targetURL string, data []byte, function _TestHTTPOverObfs4 (line 399) | func _TestHTTPOverObfs4(t *testing.T) { FILE: permissions.go type Permission (line 14) | type Permission struct type PortRange (line 21) | type PortRange struct method Contains (line 63) | func (ir *PortRange) Contains(value int) bool { function ParsePortRange (line 27) | func ParsePortRange(s string) (*PortRange, error) { type PortSet (line 68) | type PortSet method Contains (line 95) | func (ps *PortSet) Contains(value int) bool { function ParsePortSet (line 72) | func ParsePortSet(s string) (*PortSet, error) { type StringSet (line 106) | type StringSet method Contains (line 122) | func (ss *StringSet) Contains(subj string) bool { function ParseStringSet (line 110) | func ParseStringSet(s string) (*StringSet, error) { type Permissions (line 133) | type Permissions method Can (line 180) | func (ps *Permissions) Can(action string, host string, port int) bool { function ParsePermissions (line 136) | func ParsePermissions(s string) (*Permissions, error) { function minint (line 190) | func minint(x, y int) int { function maxint (line 197) | func maxint(x, y int) int { function Can (line 205) | func Can(action string, addr string, whitelist, blacklist *Permissions) ... FILE: permissions_test.go function TestPortRangeParse (line 70) | func TestPortRangeParse(t *testing.T) { function TestPortRangeContains (line 81) | func TestPortRangeContains(t *testing.T) { function TestStringSetParse (line 93) | func TestStringSetParse(t *testing.T) { function TestStringSetContains (line 104) | func TestStringSetContains(t *testing.T) { function TestPortSetParse (line 116) | func TestPortSetParse(t *testing.T) { function TestPortSetContains (line 127) | func TestPortSetContains(t *testing.T) { function TestPermissionsParse (line 143) | func TestPermissionsParse(t *testing.T) { FILE: quic.go type quicSession (line 19) | type quicSession struct method GetConn (line 23) | func (session *quicSession) GetConn() (*quicConn, error) { method Close (line 35) | func (session *quicSession) Close() error { type quicTransporter (line 39) | type quicTransporter struct method Dial (line 56) | func (tr *quicTransporter) Dial(addr string, options ...DialOption) (c... method Handshake (line 99) | func (tr *quicTransporter) Handshake(conn net.Conn, options ...Handsha... method initSession (line 103) | func (tr *quicTransporter) initSession(addr net.Addr, conn net.PacketC... method Multiplex (line 129) | func (tr *quicTransporter) Multiplex() bool { function QUICTransporter (line 46) | func QUICTransporter(config *QUICConfig) Transporter { type QUICConfig (line 134) | type QUICConfig struct type quicListener (line 143) | type quicListener struct method listenLoop (line 198) | func (l *quicListener) listenLoop() { method sessionLoop (line 211) | func (l *quicListener) sessionLoop(session quic.Connection) { method Accept (line 233) | func (l *quicListener) Accept() (conn net.Conn, err error) { method Addr (line 245) | func (l *quicListener) Addr() net.Addr { method Close (line 249) | func (l *quicListener) Close() error { function QUICListener (line 150) | func QUICListener(addr string, config *QUICConfig) (Listener, error) { type quicConn (line 253) | type quicConn struct method LocalAddr (line 259) | func (c *quicConn) LocalAddr() net.Addr { method RemoteAddr (line 263) | func (c *quicConn) RemoteAddr() net.Addr { type quicCipherConn (line 267) | type quicCipherConn struct method ReadFrom (line 272) | func (conn *quicCipherConn) ReadFrom(data []byte) (n int, addr net.Add... method WriteTo (line 287) | func (conn *quicCipherConn) WriteTo(data []byte, addr net.Addr) (n int... method encrypt (line 301) | func (conn *quicCipherConn) encrypt(data []byte) ([]byte, error) { method decrypt (line 320) | func (conn *quicCipherConn) decrypt(data []byte) ([]byte, error) { function tlsConfigQUICALPN (line 340) | func tlsConfigQUICALPN(tlsConfig *tls.Config) *tls.Config { FILE: quic_test.go function httpOverQUICRoundtrip (line 12) | func httpOverQUICRoundtrip(targetURL string, data []byte, function TestHTTPOverQUIC (line 38) | func TestHTTPOverQUIC(t *testing.T) { function BenchmarkHTTPOverQUIC (line 62) | func BenchmarkHTTPOverQUIC(b *testing.B) { function BenchmarkHTTPOverQUICParallel (line 95) | func BenchmarkHTTPOverQUICParallel(b *testing.B) { function socks5OverQUICRoundtrip (line 130) | func socks5OverQUICRoundtrip(targetURL string, data []byte, function TestSOCKS5OverQUIC (line 156) | func TestSOCKS5OverQUIC(t *testing.T) { function socks4OverQUICRoundtrip (line 181) | func socks4OverQUICRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverQUIC (line 203) | func TestSOCKS4OverQUIC(t *testing.T) { function socks4aOverQUICRoundtrip (line 217) | func socks4aOverQUICRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverQUIC (line 239) | func TestSOCKS4AOverQUIC(t *testing.T) { function ssOverQUICRoundtrip (line 254) | func ssOverQUICRoundtrip(targetURL string, data []byte, function TestSSOverQUIC (line 280) | func TestSSOverQUIC(t *testing.T) { function sniOverQUICRoundtrip (line 305) | func sniOverQUICRoundtrip(targetURL string, data []byte, host string) er... function TestSNIOverQUIC (line 332) | func TestSNIOverQUIC(t *testing.T) { function quicForwardTunnelRoundtrip (line 370) | func quicForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestQUICForwardTunnel (line 398) | func TestQUICForwardTunnel(t *testing.T) { function httpOverCipherQUICRoundtrip (line 411) | func httpOverCipherQUICRoundtrip(targetURL string, data []byte, function TestHTTPOverCipherQUIC (line 441) | func TestHTTPOverCipherQUIC(t *testing.T) { FILE: redirect.go type tcpRedirectHandler (line 19) | type tcpRedirectHandler struct method Init (line 31) | func (h *tcpRedirectHandler) Init(options ...HandlerOption) { method Handle (line 41) | func (h *tcpRedirectHandler) Handle(c net.Conn) { method getOriginalDstAddr (line 73) | func (h *tcpRedirectHandler) getOriginalDstAddr(conn *net.TCPConn) (ad... function TCPRedirectHandler (line 24) | func TCPRedirectHandler(opts ...HandlerOption) Handler { type udpRedirectHandler (line 107) | type udpRedirectHandler struct method Init (line 119) | func (h *udpRedirectHandler) Init(options ...HandlerOption) { method Handle (line 129) | func (h *udpRedirectHandler) Handle(conn net.Conn) { function UDPRedirectHandler (line 112) | func UDPRedirectHandler(opts ...HandlerOption) Handler { type udpRedirectListener (line 154) | type udpRedirectListener struct method Accept (line 180) | func (l *udpRedirectListener) Accept() (conn net.Conn, err error) { method Addr (line 209) | func (l *udpRedirectListener) Addr() net.Addr { function UDPRedirectListener (line 160) | func UDPRedirectListener(addr string, cfg *UDPListenConfig) (Listener, e... type udpRedirectServerConn (line 213) | type udpRedirectServerConn struct method Read (line 220) | func (c *udpRedirectServerConn) Read(b []byte) (n int, err error) { method Write (line 236) | func (c *udpRedirectServerConn) Write(b []byte) (n int, err error) { FILE: redirect_other.go type tcpRedirectHandler (line 13) | type tcpRedirectHandler struct method Init (line 30) | func (h *tcpRedirectHandler) Init(options ...HandlerOption) { method Handle (line 34) | func (h *tcpRedirectHandler) Handle(c net.Conn) { function TCPRedirectHandler (line 18) | func TCPRedirectHandler(opts ...HandlerOption) Handler { type udpRedirectHandler (line 39) | type udpRedirectHandler struct method Init (line 46) | func (h *udpRedirectHandler) Init(options ...HandlerOption) { method Handle (line 49) | func (h *udpRedirectHandler) Handle(conn net.Conn) { function UDPRedirectHandler (line 42) | func UDPRedirectHandler(opts ...HandlerOption) Handler { function UDPRedirectListener (line 55) | func UDPRedirectListener(addr string, cfg *UDPListenConfig) (Listener, e... FILE: relay.go type relayConnector (line 20) | type relayConnector struct method Connect (line 32) | func (c *relayConnector) Connect(conn net.Conn, address string, option... method ConnectContext (line 36) | func (c *relayConnector) ConnectContext(ctx context.Context, conn net.... function RelayConnector (line 26) | func RelayConnector(user *url.Userinfo) Connector { type relayHandler (line 114) | type relayHandler struct method Init (line 133) | func (h *relayHandler) Init(options ...HandlerOption) { method Handle (line 137) | func (h *relayHandler) Handle(conn net.Conn) { function RelayHandler (line 119) | func RelayHandler(raddr string, opts ...HandlerOption) Handler { type relayConn (line 265) | type relayConn struct method Read (line 274) | func (c *relayConn) Read(b []byte) (n int, err error) { method ReadFrom (line 317) | func (c *relayConn) ReadFrom(b []byte) (n int, addr net.Addr, err erro... method Write (line 323) | func (c *relayConn) Write(b []byte) (n int, err error) { method WriteTo (line 367) | func (c *relayConn) WriteTo(b []byte, addr net.Addr) (n int, err error) { FILE: reload.go type Reloader (line 12) | type Reloader interface type Stoppable (line 18) | type Stoppable interface function PeriodReload (line 24) | func PeriodReload(r Reloader, configFile string) error { FILE: resolver.go type nameServerOptions (line 27) | type nameServerOptions struct type NameServerOption (line 33) | type NameServerOption function TimeoutNameServerOption (line 36) | func TimeoutNameServerOption(timeout time.Duration) NameServerOption { function ChainNameServerOption (line 43) | func ChainNameServerOption(chain *Chain) NameServerOption { type NameServer (line 51) | type NameServer struct method Init (line 60) | func (ns *NameServer) Init(opts ...NameServerOption) error { method String (line 112) | func (ns *NameServer) String() string { type resolverOptions (line 121) | type resolverOptions struct type ResolverOption (line 130) | type ResolverOption function ChainResolverOption (line 133) | func ChainResolverOption(chain *Chain) ResolverOption { function TimeoutResolverOption (line 140) | func TimeoutResolverOption(timeout time.Duration) ResolverOption { function TTLResolverOption (line 147) | func TTLResolverOption(ttl time.Duration) ResolverOption { function PreferResolverOption (line 154) | func PreferResolverOption(prefer string) ResolverOption { function SrcIPResolverOption (line 161) | func SrcIPResolverOption(ip net.IP) ResolverOption { type Resolver (line 169) | type Resolver interface type ReloadResolver (line 180) | type ReloadResolver interface type resolver (line 186) | type resolver struct method Init (line 214) | func (r *resolver) Init(opts ...ResolverOption) error { method copyServers (line 260) | func (r *resolver) copyServers() []NameServer { method Resolve (line 270) | func (r *resolver) Resolve(host string) (ips []net.IP, err error) { method resolve (line 302) | func (r *resolver) resolve(ctx context.Context, ex Exchanger, host str... method resolve4 (line 324) | func (r *resolver) resolve4(ctx context.Context, ex Exchanger, host st... method resolve6 (line 330) | func (r *resolver) resolve6(ctx context.Context, ex Exchanger, host st... method resolveIPs (line 336) | func (r *resolver) resolveIPs(ctx context.Context, ex Exchanger, mq *d... method addSubnetOpt (line 360) | func (r *resolver) addSubnetOpt(m *dns.Msg) { method Exchange (line 382) | func (r *resolver) Exchange(ctx context.Context, query []byte) (reply ... method exchangeMsg (line 426) | func (r *resolver) exchangeMsg(ctx context.Context, ex Exchanger, mq *... method TTL (line 442) | func (r *resolver) TTL() time.Duration { method Reload (line 448) | func (r *resolver) Reload(rd io.Reader) error { method Period (line 540) | func (r *resolver) Period() time.Duration { method Stop (line 552) | func (r *resolver) Stop() { method Stopped (line 561) | func (r *resolver) Stopped() bool { method String (line 570) | func (r *resolver) String() string { function NewResolver (line 201) | func NewResolver(ttl time.Duration, servers ...NameServer) ReloadResolver { function newResolver (line 206) | func newResolver(ttl time.Duration, servers ...NameServer) *resolver { type resolverCacheKey (line 588) | type resolverCacheKey function newResolverCacheKey (line 591) | func newResolverCacheKey(q *dns.Question) resolverCacheKey { type resolverCacheItem (line 599) | type resolverCacheItem struct type resolverCache (line 605) | type resolverCache struct method loadCache (line 613) | func (rc *resolverCache) loadCache(key resolverCacheKey) *dns.Msg { method storeCache (line 643) | func (rc *resolverCache) storeCache(key resolverCacheKey, mr *dns.Msg,... function newResolverCache (line 609) | func newResolverCache(ttl time.Duration) *resolverCache { type Exchanger (line 659) | type Exchanger interface type exchangerOptions (line 663) | type exchangerOptions struct type ExchangerOption (line 669) | type ExchangerOption function ChainExchangerOption (line 672) | func ChainExchangerOption(chain *Chain) ExchangerOption { function TimeoutExchangerOption (line 679) | func TimeoutExchangerOption(timeout time.Duration) ExchangerOption { type dnsExchanger (line 685) | type dnsExchanger struct method Exchange (line 707) | func (ex *dnsExchanger) Exchange(ctx context.Context, query []byte) ([... function NewDNSExchanger (line 691) | func NewDNSExchanger(addr string, opts ...ExchangerOption) Exchanger { type dnsTCPExchanger (line 735) | type dnsTCPExchanger struct method Exchange (line 757) | func (ex *dnsTCPExchanger) Exchange(ctx context.Context, query []byte)... function NewDNSTCPExchanger (line 741) | func NewDNSTCPExchanger(addr string, opts ...ExchangerOption) Exchanger { type dotExchanger (line 784) | type dotExchanger struct method dial (line 813) | func (ex *dotExchanger) dial(ctx context.Context, network, address str... method Exchange (line 826) | func (ex *dotExchanger) Exchange(ctx context.Context, query []byte) ([... function NewDoTExchanger (line 791) | func NewDoTExchanger(addr string, tlsConfig *tls.Config, opts ...Exchang... type dohExchanger (line 850) | type dohExchanger struct method dialContext (line 884) | func (ex *dohExchanger) dialContext(ctx context.Context, network, addr... method Exchange (line 891) | func (ex *dohExchanger) Exchange(ctx context.Context, query []byte) ([... function NewDoHExchanger (line 857) | func NewDoHExchanger(urlStr *url.URL, tlsConfig *tls.Config, opts ...Exc... FILE: resolver_test.go function dnsResolverRoundtrip (line 33) | func dnsResolverRoundtrip(t *testing.T, r Resolver, host string) error { function TestDNSResolver (line 43) | func TestDNSResolver(t *testing.T) { function TestResolverReload (line 215) | func TestResolverReload(t *testing.T) { function compareNameServer (line 260) | func compareNameServer(n1, n2 *NameServer) bool { FILE: selector.go type NodeSelector (line 22) | type NodeSelector interface type defaultSelector (line 26) | type defaultSelector struct method Select (line 29) | func (s *defaultSelector) Select(nodes []Node, opts ...SelectOption) (... type SelectOption (line 49) | type SelectOption type SelectOptions (line 52) | type SelectOptions struct function WithFilter (line 59) | func WithFilter(f ...Filter) SelectOption { function WithStrategy (line 66) | func WithStrategy(s Strategy) SelectOption { type Strategy (line 73) | type Strategy interface function NewStrategy (line 79) | func NewStrategy(s string) Strategy { type RoundStrategy (line 94) | type RoundStrategy struct method Apply (line 99) | func (s *RoundStrategy) Apply(nodes []Node) Node { method String (line 108) | func (s *RoundStrategy) String() string { type RandomStrategy (line 114) | type RandomStrategy struct method Apply (line 122) | func (s *RandomStrategy) Apply(nodes []Node) Node { method String (line 141) | func (s *RandomStrategy) String() string { type FIFOStrategy (line 148) | type FIFOStrategy struct method Apply (line 151) | func (s *FIFOStrategy) Apply(nodes []Node) Node { method String (line 158) | func (s *FIFOStrategy) String() string { type Filter (line 163) | type Filter interface constant DefaultMaxFails (line 170) | DefaultMaxFails = 1 constant DefaultFailTimeout (line 171) | DefaultFailTimeout = 30 * time.Second type FailFilter (line 176) | type FailFilter struct method Filter (line 182) | func (f *FailFilter) Filter(nodes []Node) []Node { method String (line 207) | func (f *FailFilter) String() string { type FastestFilter (line 212) | type FastestFilter struct method Filter (line 235) | func (f *FastestFilter) Filter(nodes []Node) []Node { method String (line 280) | func (f *FastestFilter) String() string { method doTcpPing (line 285) | func (f *FastestFilter) doTcpPing(address string) int { function NewFastestFilter (line 222) | func NewFastestFilter(pingTimeOut int, topCount int) *FastestFilter { type InvalidFilter (line 301) | type InvalidFilter struct method Filter (line 304) | func (f *InvalidFilter) Filter(nodes []Node) []Node { method String (line 315) | func (f *InvalidFilter) String() string { type failMarker (line 319) | type failMarker struct method FailTime (line 325) | func (m *failMarker) FailTime() int64 { method FailCount (line 336) | func (m *failMarker) FailCount() uint32 { method Mark (line 347) | func (m *failMarker) Mark() { method Reset (line 359) | func (m *failMarker) Reset() { method Clone (line 371) | func (m *failMarker) Clone() *failMarker { FILE: selector_test.go function TestRoundStrategy (line 8) | func TestRoundStrategy(t *testing.T) { function TestRandomStrategy (line 28) | func TestRandomStrategy(t *testing.T) { function TestFIFOStrategy (line 48) | func TestFIFOStrategy(t *testing.T) { function TestFailFilter (line 68) | func TestFailFilter(t *testing.T) { function TestFastestFilter (line 130) | func TestFastestFilter(t *testing.T) { function TestSelector (line 154) | func TestSelector(t *testing.T) { FILE: server.go type Accepter (line 12) | type Accepter interface type Server (line 17) | type Server struct method Init (line 24) | func (s *Server) Init(opts ...ServerOption) { method Addr (line 34) | func (s *Server) Addr() net.Addr { method Close (line 39) | func (s *Server) Close() error { method Serve (line 44) | func (s *Server) Serve(h Handler, opts ...ServerOption) error { method Run (line 89) | func (s *Server) Run() error { type ServerOptions (line 94) | type ServerOptions struct type ServerOption (line 98) | type ServerOption type Listener (line 101) | type Listener interface function transport (line 105) | func transport(rw1, rw2 io.ReadWriter) error { function copyBuffer (line 122) | func copyBuffer(dst io.Writer, src io.Reader) error { FILE: signal.go function kcpSigHandler (line 6) | func kcpSigHandler() {} FILE: signal_unix.go function kcpSigHandler (line 15) | func kcpSigHandler() { FILE: sni.go type sniConnector (line 25) | type sniConnector struct method Connect (line 34) | func (c *sniConnector) Connect(conn net.Conn, address string, options ... method ConnectContext (line 38) | func (c *sniConnector) ConnectContext(ctx context.Context, conn net.Co... function SNIConnector (line 30) | func SNIConnector(host string) Connector { type sniHandler (line 47) | type sniHandler struct method Init (line 59) | func (h *sniHandler) Init(options ...HandlerOption) { method Handle (line 69) | func (h *sniHandler) Handle(conn net.Conn) { function SNIHandler (line 52) | func SNIHandler(opts ...HandlerOption) Handler { type sniSniffConn (line 183) | type sniSniffConn struct method Read (line 188) | func (c sniSniffConn) Read(p []byte) (int, error) { return c.r.Read(p) } method Write (line 189) | func (sniSniffConn) Write(p []byte) (int, error) { return 0, io.EOF } type sniClientConn (line 191) | type sniClientConn struct method Write (line 199) | func (c *sniClientConn) Write(p []byte) (int, error) { method obfuscate (line 210) | func (c *sniClientConn) obfuscate(p []byte) ([]byte, error) { function readClientHelloRecord (line 273) | func readClientHelloRecord(r io.Reader, host string, isClient bool) ([]b... function encodeServerName (line 327) | func encodeServerName(name string) string { function decodeServerName (line 334) | func decodeServerName(s string) (string, error) { FILE: sni_test.go function sniRoundtrip (line 18) | func sniRoundtrip(client *Client, server *Server, targetURL string, data... function sniProxyRoundtrip (line 84) | func sniProxyRoundtrip(targetURL string, data []byte, host string) error { function TestSNIProxy (line 111) | func TestSNIProxy(t *testing.T) { FILE: sockopts_linux.go function setSocketMark (line 5) | func setSocketMark(fd int, value int) (e error) { function setSocketInterface (line 9) | func setSocketInterface(fd int, value string) (e error) { FILE: sockopts_other.go function setSocketMark (line 6) | func setSocketMark(fd int, value int) (e error) { function setSocketInterface (line 10) | func setSocketInterface(fd int, value string) (e error) { FILE: socks.go constant MethodTLS (line 25) | MethodTLS uint8 = 0x80 constant MethodTLSAuth (line 27) | MethodTLSAuth uint8 = 0x82 constant MethodMux (line 29) | MethodMux = 0x88 constant CmdMuxBind (line 35) | CmdMuxBind uint8 = 0xF2 constant CmdUDPTun (line 37) | CmdUDPTun uint8 = 0xF3 type clientSelector (line 44) | type clientSelector struct method Methods (line 50) | func (selector *clientSelector) Methods() []uint8 { method AddMethod (line 57) | func (selector *clientSelector) AddMethod(methods ...uint8) { method Select (line 61) | func (selector *clientSelector) Select(methods ...uint8) (method uint8) { method OnSelected (line 65) | func (selector *clientSelector) OnSelected(method uint8, conn net.Conn... type serverSelector (line 110) | type serverSelector struct method Methods (line 117) | func (selector *serverSelector) Methods() []uint8 { method AddMethod (line 121) | func (selector *serverSelector) AddMethod(methods ...uint8) { method Select (line 125) | func (selector *serverSelector) Select(methods ...uint8) (method uint8) { method OnSelected (line 150) | func (selector *serverSelector) OnSelected(method uint8, conn net.Conn... type socks5Connector (line 200) | type socks5Connector struct method Connect (line 210) | func (c *socks5Connector) Connect(conn net.Conn, address string, optio... method ConnectContext (line 214) | func (c *socks5Connector) ConnectContext(ctx context.Context, conn net... function SOCKS5Connector (line 206) | func SOCKS5Connector(user *url.Userinfo) Connector { type socks5BindConnector (line 282) | type socks5BindConnector struct method Connect (line 292) | func (c *socks5BindConnector) Connect(conn net.Conn, address string, o... method ConnectContext (line 296) | func (c *socks5BindConnector) ConnectContext(ctx context.Context, conn... function SOCKS5BindConnector (line 288) | func SOCKS5BindConnector(user *url.Userinfo) Connector { type socks5MuxBindConnector (line 371) | type socks5MuxBindConnector struct method Connect (line 378) | func (c *socks5MuxBindConnector) Connect(conn net.Conn, address string... method ConnectContext (line 383) | func (c *socks5MuxBindConnector) ConnectContext(ctx context.Context, c... function Socks5MuxBindConnector (line 374) | func Socks5MuxBindConnector() Connector { type socks5MuxBindTransporter (line 397) | type socks5MuxBindTransporter struct method Dial (line 411) | func (tr *socks5MuxBindTransporter) Dial(addr string, options ...DialO... method Handshake (line 445) | func (tr *socks5MuxBindTransporter) Handshake(conn net.Conn, options .... method initSession (line 477) | func (tr *socks5MuxBindTransporter) initSession(conn net.Conn, addr st... method Multiplex (line 536) | func (tr *socks5MuxBindTransporter) Multiplex() bool { function SOCKS5MuxBindTransporter (line 404) | func SOCKS5MuxBindTransporter(bindAddr string) Transporter { type socks5UDPConnector (line 540) | type socks5UDPConnector struct method Connect (line 550) | func (c *socks5UDPConnector) Connect(conn net.Conn, address string, op... method ConnectContext (line 554) | func (c *socks5UDPConnector) ConnectContext(ctx context.Context, conn ... function SOCKS5UDPConnector (line 546) | func SOCKS5UDPConnector(user *url.Userinfo) Connector { type socks5UDPTunConnector (line 632) | type socks5UDPTunConnector struct method Connect (line 642) | func (c *socks5UDPTunConnector) Connect(conn net.Conn, address string,... method ConnectContext (line 646) | func (c *socks5UDPTunConnector) ConnectContext(ctx context.Context, co... function SOCKS5UDPTunConnector (line 638) | func SOCKS5UDPTunConnector(user *url.Userinfo) Connector { type socks4Connector (line 678) | type socks4Connector struct method Connect (line 685) | func (c *socks4Connector) Connect(conn net.Conn, address string, optio... method ConnectContext (line 689) | func (c *socks4Connector) ConnectContext(ctx context.Context, conn net... function SOCKS4Connector (line 681) | func SOCKS4Connector() Connector { type socks4aConnector (line 747) | type socks4aConnector struct method Connect (line 754) | func (c *socks4aConnector) Connect(conn net.Conn, address string, opti... method ConnectContext (line 758) | func (c *socks4aConnector) ConnectContext(ctx context.Context, conn ne... function SOCKS4AConnector (line 750) | func SOCKS4AConnector() Connector { type socks5Handler (line 809) | type socks5Handler struct method Init (line 822) | func (h *socks5Handler) Init(options ...HandlerOption) { method Handle (line 849) | func (h *socks5Handler) Handle(conn net.Conn) { method handleConnect (line 886) | func (h *socks5Handler) handleConnect(conn net.Conn, req *gosocks5.Req... method handleBind (line 981) | func (h *socks5Handler) handleBind(conn net.Conn, req *gosocks5.Reques... method bindOn (line 1020) | func (h *socks5Handler) bindOn(conn net.Conn, addr string) { method handleUDPRelay (line 1116) | func (h *socks5Handler) handleUDPRelay(conn net.Conn, req *gosocks5.Re... method discardClientData (line 1219) | func (h *socks5Handler) discardClientData(conn net.Conn) (err error) { method transportUDP (line 1235) | func (h *socks5Handler) transportUDP(relay, peer net.PacketConn) (err ... method tunnelClientUDP (line 1315) | func (h *socks5Handler) tunnelClientUDP(uc *net.UDPConn, cc net.Conn) ... method handleUDPTunnel (line 1397) | func (h *socks5Handler) handleUDPTunnel(conn net.Conn, req *gosocks5.R... method tunnelServerUDP (line 1457) | func (h *socks5Handler) tunnelServerUDP(cc net.Conn, pc net.PacketConn... method handleMuxBind (line 1526) | func (h *socks5Handler) handleMuxBind(conn net.Conn, req *gosocks5.Req... method muxBindOn (line 1558) | func (h *socks5Handler) muxBindOn(conn net.Conn, addr string) { function SOCKS5Handler (line 815) | func SOCKS5Handler(opts ...HandlerOption) Handler { function toSocksAddr (line 1634) | func toSocksAddr(addr net.Addr) *gosocks5.Addr { type socks4Handler (line 1653) | type socks4Handler struct method Init (line 1665) | func (h *socks4Handler) Init(options ...HandlerOption) { method Handle (line 1675) | func (h *socks4Handler) Handle(conn net.Conn) { method handleConnect (line 1704) | func (h *socks4Handler) handleConnect(conn net.Conn, req *gosocks4.Req... method handleBind (line 1800) | func (h *socks4Handler) handleBind(conn net.Conn, req *gosocks4.Reques... function SOCKS4Handler (line 1658) | func SOCKS4Handler(opts ...HandlerOption) Handler { type socks5HandshakeOptions (line 1832) | type socks5HandshakeOptions struct type socks5HandshakeOption (line 1839) | type socks5HandshakeOption function selectorSocks5HandshakeOption (line 1841) | func selectorSocks5HandshakeOption(selector gosocks5.Selector) socks5Han... function userSocks5HandshakeOption (line 1847) | func userSocks5HandshakeOption(user *url.Userinfo) socks5HandshakeOption { function noTLSSocks5HandshakeOption (line 1853) | func noTLSSocks5HandshakeOption(noTLS bool) socks5HandshakeOption { function socks5Handshake (line 1859) | func socks5Handshake(conn net.Conn, opts ...socks5HandshakeOption) (net.... function getSocks5UDPTunnel (line 1887) | func getSocks5UDPTunnel(chain *Chain, addr net.Addr) (net.Conn, error) { type socks5UDPTunnelConn (line 1905) | type socks5UDPTunnelConn struct method Read (line 1949) | func (c *socks5UDPTunnelConn) Read(b []byte) (n int, err error) { method ReadFrom (line 1954) | func (c *socks5UDPTunnelConn) ReadFrom(b []byte) (n int, addr net.Addr... method Write (line 1964) | func (c *socks5UDPTunnelConn) Write(b []byte) (n int, err error) { method WriteTo (line 1968) | func (c *socks5UDPTunnelConn) WriteTo(b []byte, addr net.Addr) (n int,... function newSocks5UDPTunnelConn (line 1910) | func newSocks5UDPTunnelConn(conn net.Conn, raddr, taddr net.Addr, opts .... type socks5BindConn (line 1977) | type socks5BindConn struct method Handshake (line 1986) | func (c *socks5BindConn) Handshake() (err error) { method Read (line 2007) | func (c *socks5BindConn) Read(b []byte) (n int, err error) { method Write (line 2014) | func (c *socks5BindConn) Write(b []byte) (n int, err error) { method LocalAddr (line 2021) | func (c *socks5BindConn) LocalAddr() net.Addr { method RemoteAddr (line 2025) | func (c *socks5BindConn) RemoteAddr() net.Addr { type socks5UDPConn (line 2029) | type socks5UDPConn struct method Read (line 2034) | func (c *socks5UDPConn) Read(b []byte) (n int, err error) { method ReadFrom (line 2039) | func (c *socks5UDPConn) ReadFrom(b []byte) (n int, addr net.Addr, err ... method Write (line 2058) | func (c *socks5UDPConn) Write(b []byte) (int, error) { method WriteTo (line 2062) | func (c *socks5UDPConn) WriteTo(b []byte, addr net.Addr) (int, error) { type muxBindClientConn (line 2076) | type muxBindClientConn struct method Accept (line 2081) | func (c *muxBindClientConn) Accept() (net.Conn, error) { FILE: socks_test.go function socks5ProxyRoundtrip (line 34) | func socks5ProxyRoundtrip(targetURL string, data []byte, clientInfo *url... function TestSOCKS5Proxy (line 56) | func TestSOCKS5Proxy(t *testing.T) { function BenchmarkSOCKS5Proxy (line 81) | func BenchmarkSOCKS5Proxy(b *testing.B) { function BenchmarkSOCKS5ProxyParallel (line 113) | func BenchmarkSOCKS5ProxyParallel(b *testing.B) { function socks4ProxyRoundtrip (line 147) | func socks4ProxyRoundtrip(targetURL string, data []byte) error { function TestSOCKS4Proxy (line 168) | func TestSOCKS4Proxy(t *testing.T) { function BenchmarkSOCKS4Proxy (line 182) | func BenchmarkSOCKS4Proxy(b *testing.B) { function BenchmarkSOCKS4ProxyParallel (line 213) | func BenchmarkSOCKS4ProxyParallel(b *testing.B) { function socks4aProxyRoundtrip (line 246) | func socks4aProxyRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AProxy (line 268) | func TestSOCKS4AProxy(t *testing.T) { function BenchmarkSOCKS4AProxy (line 282) | func BenchmarkSOCKS4AProxy(b *testing.B) { function BenchmarkSOCKS4AProxyParallel (line 314) | func BenchmarkSOCKS4AProxyParallel(b *testing.B) { function socks5BindRoundtrip (line 348) | func socks5BindRoundtrip(t *testing.T, targetURL string, data []byte) (e... function TestSOCKS5Bind (line 401) | func TestSOCKS5Bind(t *testing.T) { function socks5MuxBindRoundtrip (line 413) | func socks5MuxBindRoundtrip(t *testing.T, targetURL string, data []byte)... function muxBindRoundtrip (line 442) | func muxBindRoundtrip(client *Client, server *Server, bindAddr, targetUR... function TestSOCKS5MuxBind (line 484) | func TestSOCKS5MuxBind(t *testing.T) { function BenchmarkSOCKS5MuxBind (line 496) | func BenchmarkSOCKS5MuxBind(b *testing.B) { function socks5UDPRoundtrip (line 535) | func socks5UDPRoundtrip(t *testing.T, host string, data []byte) (err err... function TestSOCKS5UDP (line 556) | func TestSOCKS5UDP(t *testing.T) { function BenchmarkSOCKS5UDP (line 570) | func BenchmarkSOCKS5UDP(b *testing.B) { function BenchmarkSOCKS5UDPSingleConn (line 602) | func BenchmarkSOCKS5UDPSingleConn(b *testing.B) { function socks5UDPTunRoundtrip (line 664) | func socks5UDPTunRoundtrip(t *testing.T, host string, data []byte) (err ... function TestSOCKS5UDPTun (line 685) | func TestSOCKS5UDPTun(t *testing.T) { function BenchmarkSOCKS5UDPTun (line 698) | func BenchmarkSOCKS5UDPTun(b *testing.B) { function BenchmarkSOCKS5UDPTunSingleConn (line 730) | func BenchmarkSOCKS5UDPTunSingleConn(b *testing.B) { FILE: ss.go constant maxSocksAddrLen (line 20) | maxSocksAddrLen = 259 type shadowConnector (line 28) | type shadowConnector struct method Connect (line 40) | func (c *shadowConnector) Connect(conn net.Conn, address string, optio... method ConnectContext (line 44) | func (c *shadowConnector) ConnectContext(ctx context.Context, conn net... function ShadowConnector (line 34) | func ShadowConnector(info *url.Userinfo) Connector { type shadowHandler (line 95) | type shadowHandler struct method Init (line 108) | func (h *shadowHandler) Init(options ...HandlerOption) { method Handle (line 121) | func (h *shadowHandler) Handle(conn net.Conn) { function ShadowHandler (line 101) | func ShadowHandler(opts ...HandlerOption) Handler { type shadowUDPConnector (line 206) | type shadowUDPConnector struct method Connect (line 218) | func (c *shadowUDPConnector) Connect(conn net.Conn, address string, op... method ConnectContext (line 222) | func (c *shadowUDPConnector) ConnectContext(ctx context.Context, conn ... function ShadowUDPConnector (line 212) | func ShadowUDPConnector(info *url.Userinfo) Connector { type shadowUDPHandler (line 271) | type shadowUDPHandler struct method Init (line 284) | func (h *shadowUDPHandler) Init(options ...HandlerOption) { method Handle (line 296) | func (h *shadowUDPHandler) Handle(conn net.Conn) { method transportPacket (line 336) | func (h *shadowUDPHandler) transportPacket(conn, cc net.PacketConn) (e... method transportUDP (line 418) | func (h *shadowUDPHandler) transportUDP(conn net.Conn, cc net.PacketCo... function ShadowUDPHandler (line 277) | func ShadowUDPHandler(opts ...HandlerOption) Handler { type shadowConn (line 493) | type shadowConn struct method Write (line 498) | func (c *shadowConn) Write(b []byte) (n int, err error) { type shadowUDPPacketConn (line 510) | type shadowUDPPacketConn struct method ReadFrom (line 516) | func (c *shadowUDPPacketConn) ReadFrom(b []byte) (n int, addr net.Addr... method Read (line 540) | func (c *shadowUDPPacketConn) Read(b []byte) (n int, err error) { method WriteTo (line 545) | func (c *shadowUDPPacketConn) WriteTo(b []byte, addr net.Addr) (n int,... method Write (line 566) | func (c *shadowUDPPacketConn) Write(b []byte) (n int, err error) { method RemoteAddr (line 570) | func (c *shadowUDPPacketConn) RemoteAddr() net.Addr { type shadowCipher (line 574) | type shadowCipher struct method StreamConn (line 578) | func (c *shadowCipher) StreamConn(conn net.Conn) net.Conn { method PacketConn (line 582) | func (c *shadowCipher) PacketConn(conn net.PacketConn) net.PacketConn { function initShadowCipher (line 586) | func initShadowCipher(info *url.Userinfo) (cipher core.Cipher) { function readSocksAddr (line 612) | func readSocksAddr(r io.Reader) (*gosocks5.Addr, error) { FILE: ss_test.go function init (line 13) | func init() { function ssProxyRoundtrip (line 157) | func ssProxyRoundtrip(targetURL string, data []byte, clientInfo *url.Use... function TestShadowTCP (line 179) | func TestShadowTCP(t *testing.T) { function BenchmarkSSProxy_AES256 (line 207) | func BenchmarkSSProxy_AES256(b *testing.B) { function BenchmarkSSProxy_Chacha20 (line 239) | func BenchmarkSSProxy_Chacha20(b *testing.B) { function BenchmarkSSProxy_Chacha20_ietf (line 271) | func BenchmarkSSProxy_Chacha20_ietf(b *testing.B) { function BenchmarkSSProxyParallel (line 303) | func BenchmarkSSProxyParallel(b *testing.B) { function shadowUDPRoundtrip (line 456) | func shadowUDPRoundtrip(t *testing.T, host string, data []byte, function TestShadowUDP (line 481) | func TestShadowUDP(t *testing.T) { function BenchmarkShadowUDP (line 510) | func BenchmarkShadowUDP(b *testing.B) { FILE: ssh.go constant DirectForwardRequest (line 22) | DirectForwardRequest = "direct-tcpip" constant RemoteForwardRequest (line 23) | RemoteForwardRequest = "tcpip-forward" constant ForwardedTCPReturnRequest (line 24) | ForwardedTCPReturnRequest = "forwarded-tcpip" constant CancelRemoteForwardRequest (line 25) | CancelRemoteForwardRequest = "cancel-tcpip-forward" constant GostSSHTunnelRequest (line 27) | GostSSHTunnelRequest = "gost-tunnel" function ParseSSHKeyFile (line 33) | func ParseSSHKeyFile(fp string) (ssh.Signer, error) { function ParseSSHAuthorizedKeysFile (line 42) | func ParseSSHAuthorizedKeysFile(fp string) (map[string]bool, error) { type sshDirectForwardConnector (line 60) | type sshDirectForwardConnector struct method Connect (line 67) | func (c *sshDirectForwardConnector) Connect(conn net.Conn, raddr strin... method ConnectContext (line 71) | func (c *sshDirectForwardConnector) ConnectContext(ctx context.Context... function SSHDirectForwardConnector (line 63) | func SSHDirectForwardConnector() Connector { type sshRemoteForwardConnector (line 103) | type sshRemoteForwardConnector struct method Connect (line 110) | func (c *sshRemoteForwardConnector) Connect(conn net.Conn, address str... method ConnectContext (line 114) | func (c *sshRemoteForwardConnector) ConnectContext(ctx context.Context... function SSHRemoteForwardConnector (line 106) | func SSHRemoteForwardConnector() Connector { type sshForwardTransporter (line 166) | type sshForwardTransporter struct method Dial (line 178) | func (tr *sshForwardTransporter) Dial(addr string, options ...DialOpti... method Handshake (line 212) | func (tr *sshForwardTransporter) Handshake(conn net.Conn, options ...H... method Multiplex (line 276) | func (tr *sshForwardTransporter) Multiplex() bool { function SSHForwardTransporter (line 172) | func SSHForwardTransporter() Transporter { type sshTunnelTransporter (line 280) | type sshTunnelTransporter struct method Dial (line 292) | func (tr *sshTunnelTransporter) Dial(addr string, options ...DialOptio... method Handshake (line 326) | func (tr *sshTunnelTransporter) Handshake(conn net.Conn, options ...Ha... method Multiplex (line 394) | func (tr *sshTunnelTransporter) Multiplex() bool { function SSHTunnelTransporter (line 286) | func SSHTunnelTransporter() Transporter { type sshSession (line 398) | type sshSession struct method Ping (line 408) | func (s *sshSession) Ping(interval, timeout time.Duration, retries int) { method sendPing (line 461) | func (s *sshSession) sendPing() <-chan error { method waitServer (line 472) | func (s *sshSession) waitServer() error { method waitClose (line 477) | func (s *sshSession) waitClose() { method Closed (line 486) | func (s *sshSession) Closed() bool { type sshForwardHandler (line 497) | type sshForwardHandler struct method Init (line 510) | func (h *sshForwardHandler) Init(options ...HandlerOption) { method Handle (line 537) | func (h *sshForwardHandler) Handle(conn net.Conn) { method handleForward (line 551) | func (h *sshForwardHandler) handleForward(conn ssh.Conn, chans <-chan ... method directPortForwardChannel (line 599) | func (h *sshForwardHandler) directPortForwardChannel(channel ssh.Chann... method tcpipForwardRequest (line 637) | func (h *sshForwardHandler) tcpipForwardRequest(sshConn ssh.Conn, req ... function SSHForwardHandler (line 503) | func SSHForwardHandler(opts ...HandlerOption) Handler { type tcpipForward (line 632) | type tcpipForward struct type SSHConfig (line 718) | type SSHConfig struct type sshTunnelListener (line 725) | type sshTunnelListener struct method listenLoop (line 774) | func (l *sshTunnelListener) listenLoop() { method serveConn (line 787) | func (l *sshTunnelListener) serveConn(conn net.Conn) { method Accept (line 829) | func (l *sshTunnelListener) Accept() (conn net.Conn, err error) { function SSHTunnelListener (line 733) | func SSHTunnelListener(addr string, config *SSHConfig) (Listener, error) { type directForward (line 842) | type directForward struct method String (line 849) | func (p directForward) String() string { function getHostPortFromAddr (line 853) | func getHostPortFromAddr(addr net.Addr) (host string, port int, err erro... type PasswordCallbackFunc (line 864) | type PasswordCallbackFunc function defaultSSHPasswordCallback (line 866) | func defaultSSHPasswordCallback(au Authenticator) PasswordCallbackFunc { type PublicKeyCallbackFunc (line 881) | type PublicKeyCallbackFunc function defaultSSHPublicKeyCallback (line 883) | func defaultSSHPublicKeyCallback(keys map[string]bool) PublicKeyCallback... type sshNopConn (line 901) | type sshNopConn struct method Read (line 905) | func (c *sshNopConn) Read(b []byte) (n int, err error) { method Write (line 909) | func (c *sshNopConn) Write(b []byte) (n int, err error) { method Close (line 913) | func (c *sshNopConn) Close() error { method LocalAddr (line 917) | func (c *sshNopConn) LocalAddr() net.Addr { method RemoteAddr (line 924) | func (c *sshNopConn) RemoteAddr() net.Addr { method SetDeadline (line 931) | func (c *sshNopConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 935) | func (c *sshNopConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 939) | func (c *sshNopConn) SetWriteDeadline(t time.Time) error { type sshConn (line 943) | type sshConn struct method Read (line 948) | func (c *sshConn) Read(b []byte) (n int, err error) { method Write (line 952) | func (c *sshConn) Write(b []byte) (n int, err error) { method Close (line 956) | func (c *sshConn) Close() error { method LocalAddr (line 960) | func (c *sshConn) LocalAddr() net.Addr { method RemoteAddr (line 964) | func (c *sshConn) RemoteAddr() net.Addr { method SetDeadline (line 968) | func (c *sshConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 972) | func (c *sshConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 976) | func (c *sshConn) SetWriteDeadline(t time.Time) error { FILE: ssh_test.go function sshDirectForwardRoundtrip (line 13) | func sshDirectForwardRoundtrip(targetURL string, data []byte) error { function TestSSHDirectForward (line 35) | func TestSSHDirectForward(t *testing.T) { function BenchmarkSSHDirectForward (line 48) | func BenchmarkSSHDirectForward(b *testing.B) { function BenchmarkSSHDirectForwardParallel (line 80) | func BenchmarkSSHDirectForwardParallel(b *testing.B) { function sshRemoteForwardRoundtrip (line 114) | func sshRemoteForwardRoundtrip(t *testing.T, targetURL string, data []by... function _TestSSHRemoteForward (line 170) | func _TestSSHRemoteForward(t *testing.T) { function httpOverSSHTunnelRoundtrip (line 183) | func httpOverSSHTunnelRoundtrip(targetURL string, data []byte, tlsConfig... function TestHTTPOverSSHTunnel (line 209) | func TestHTTPOverSSHTunnel(t *testing.T) { function BenchmarkHTTPOverSSHTunnel (line 233) | func BenchmarkHTTPOverSSHTunnel(b *testing.B) { function BenchmarkHTTPOverSSHTunnelParallel (line 266) | func BenchmarkHTTPOverSSHTunnelParallel(b *testing.B) { function socks5OverSSHTunnelRoundtrip (line 301) | func socks5OverSSHTunnelRoundtrip(targetURL string, data []byte, tlsConf... function TestSOCKS5OverSSHTunnel (line 327) | func TestSOCKS5OverSSHTunnel(t *testing.T) { function socks4OverSSHTunnelRoundtrip (line 353) | func socks4OverSSHTunnelRoundtrip(targetURL string, data []byte, tlsConf... function TestSOCKS4OverSSHTunnel (line 375) | func TestSOCKS4OverSSHTunnel(t *testing.T) { function socks4aOverSSHTunnelRoundtrip (line 389) | func socks4aOverSSHTunnelRoundtrip(targetURL string, data []byte, tlsCon... function TestSOCKS4AOverSSHTunnel (line 411) | func TestSOCKS4AOverSSHTunnel(t *testing.T) { function ssOverSSHTunnelRoundtrip (line 425) | func ssOverSSHTunnelRoundtrip(targetURL string, data []byte, tlsConfig *... function TestSSOverSSHTunnel (line 451) | func TestSSOverSSHTunnel(t *testing.T) { function sniOverSSHTunnelRoundtrip (line 477) | func sniOverSSHTunnelRoundtrip(targetURL string, data []byte, host strin... function TestSNIOverSSHTunnel (line 504) | func TestSNIOverSSHTunnel(t *testing.T) { function sshForwardTunnelRoundtrip (line 542) | func sshForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestSSHForwardTunnel (line 570) | func TestSSHForwardTunnel(t *testing.T) { FILE: tcp.go type tcpTransporter (line 6) | type tcpTransporter struct method Dial (line 13) | func (tr *tcpTransporter) Dial(addr string, options ...DialOption) (ne... method Handshake (line 29) | func (tr *tcpTransporter) Handshake(conn net.Conn, options ...Handshak... method Multiplex (line 33) | func (tr *tcpTransporter) Multiplex() bool { function TCPTransporter (line 9) | func TCPTransporter() Transporter { type tcpListener (line 37) | type tcpListener struct function TCPListener (line 42) | func TCPListener(addr string) (Listener, error) { type tcpKeepAliveListener (line 54) | type tcpKeepAliveListener struct method Accept (line 58) | func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) { FILE: tls.go type tlsTransporter (line 15) | type tlsTransporter struct method Handshake (line 24) | func (tr *tlsTransporter) Handshake(conn net.Conn, options ...Handshak... function TLSTransporter (line 20) | func TLSTransporter() Transporter { type mtlsTransporter (line 41) | type mtlsTransporter struct method Dial (line 54) | func (tr *mtlsTransporter) Dial(addr string, options ...DialOption) (c... method Handshake (line 88) | func (tr *mtlsTransporter) Handshake(conn net.Conn, options ...Handsha... method initSession (line 126) | func (tr *mtlsTransporter) initSession(addr string, conn net.Conn, opt... method Multiplex (line 147) | func (tr *mtlsTransporter) Multiplex() bool { function MTLSTransporter (line 48) | func MTLSTransporter() Transporter { type tlsListener (line 151) | type tlsListener struct function TLSListener (line 156) | func TLSListener(addr string, config *tls.Config) (Listener, error) { type mtlsListener (line 169) | type mtlsListener struct method listenLoop (line 195) | func (l *mtlsListener) listenLoop() { method mux (line 208) | func (l *mtlsListener) mux(conn net.Conn) { method Accept (line 238) | func (l *mtlsListener) Accept() (conn net.Conn, err error) { method Addr (line 249) | func (l *mtlsListener) Addr() net.Addr { method Close (line 253) | func (l *mtlsListener) Close() error { function MTLSListener (line 176) | func MTLSListener(addr string, config *tls.Config) (Listener, error) { function wrapTLSClient (line 270) | func wrapTLSClient(conn net.Conn, tlsConfig *tls.Config, timeout time.Du... FILE: tls_test.go function httpOverTLSRoundtrip (line 12) | func httpOverTLSRoundtrip(targetURL string, data []byte, tlsConfig *tls.... function TestHTTPOverTLS (line 38) | func TestHTTPOverTLS(t *testing.T) { function BenchmarkHTTPOverTLS (line 62) | func BenchmarkHTTPOverTLS(b *testing.B) { function BenchmarkHTTPOverTLSParallel (line 95) | func BenchmarkHTTPOverTLSParallel(b *testing.B) { function socks5OverTLSRoundtrip (line 130) | func socks5OverTLSRoundtrip(targetURL string, data []byte, tlsConfig *tl... function TestSOCKS5OverTLS (line 156) | func TestSOCKS5OverTLS(t *testing.T) { function socks4OverTLSRoundtrip (line 182) | func socks4OverTLSRoundtrip(targetURL string, data []byte, tlsConfig *tl... function TestSOCKS4OverTLS (line 204) | func TestSOCKS4OverTLS(t *testing.T) { function socks4aOverTLSRoundtrip (line 218) | func socks4aOverTLSRoundtrip(targetURL string, data []byte, tlsConfig *t... function TestSOCKS4AOverTLS (line 240) | func TestSOCKS4AOverTLS(t *testing.T) { function ssOverTLSRoundtrip (line 254) | func ssOverTLSRoundtrip(targetURL string, data []byte, tlsConfig *tls.Co... function TestSSOverTLS (line 280) | func TestSSOverTLS(t *testing.T) { function sniOverTLSRoundtrip (line 306) | func sniOverTLSRoundtrip(targetURL string, data []byte, host string) err... function TestSNIOverTLS (line 333) | func TestSNIOverTLS(t *testing.T) { function tlsForwardTunnelRoundtrip (line 371) | func tlsForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestTLSForwardTunnel (line 399) | func TestTLSForwardTunnel(t *testing.T) { function httpOverMTLSRoundtrip (line 412) | func httpOverMTLSRoundtrip(targetURL string, data []byte, tlsConfig *tls... function TestHTTPOverMTLS (line 438) | func TestHTTPOverMTLS(t *testing.T) { function BenchmarkHTTPOverMTLS (line 462) | func BenchmarkHTTPOverMTLS(b *testing.B) { function BenchmarkHTTPOverMTLSParallel (line 495) | func BenchmarkHTTPOverMTLSParallel(b *testing.B) { function socks5OverMTLSRoundtrip (line 530) | func socks5OverMTLSRoundtrip(targetURL string, data []byte, tlsConfig *t... function TestSOCKS5OverMTLS (line 556) | func TestSOCKS5OverMTLS(t *testing.T) { function socks4OverMTLSRoundtrip (line 582) | func socks4OverMTLSRoundtrip(targetURL string, data []byte, tlsConfig *t... function TestSOCKS4OverMTLS (line 604) | func TestSOCKS4OverMTLS(t *testing.T) { function socks4aOverMTLSRoundtrip (line 618) | func socks4aOverMTLSRoundtrip(targetURL string, data []byte, tlsConfig *... function TestSOCKS4AOverMTLS (line 640) | func TestSOCKS4AOverMTLS(t *testing.T) { function ssOverMTLSRoundtrip (line 654) | func ssOverMTLSRoundtrip(targetURL string, data []byte, tlsConfig *tls.C... function TestSSOverMTLS (line 680) | func TestSSOverMTLS(t *testing.T) { function sniOverMTLSRoundtrip (line 706) | func sniOverMTLSRoundtrip(targetURL string, data []byte, host string) er... function TestSNIOverMTLS (line 733) | func TestSNIOverMTLS(t *testing.T) { function mtlsForwardTunnelRoundtrip (line 771) | func mtlsForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestMTLSForwardTunnel (line 799) | func TestMTLSForwardTunnel(t *testing.T) { FILE: tuntap.go function ipProtocol (line 35) | func ipProtocol(p waterutil.IPProtocol) string { type IPRoute (line 43) | type IPRoute struct type TunConfig (line 49) | type TunConfig struct type tunRouteKey (line 58) | type tunRouteKey function ipToTunRouteKey (line 60) | func ipToTunRouteKey(ip net.IP) (key tunRouteKey) { type tunListener (line 65) | type tunListener struct method Accept (line 98) | func (l *tunListener) Accept() (net.Conn, error) { method Addr (line 108) | func (l *tunListener) Addr() net.Addr { method Close (line 112) | func (l *tunListener) Close() error { function TunListener (line 73) | func TunListener(cfg TunConfig) (Listener, error) { type tunHandler (line 122) | type tunHandler struct method Init (line 141) | func (h *tunHandler) Init(options ...HandlerOption) { method Handle (line 150) | func (h *tunHandler) Handle(conn net.Conn) { method initTunnelConn (line 231) | func (h *tunHandler) initTunnelConn(pc net.PacketConn) (net.PacketConn... method findRouteFor (line 243) | func (h *tunHandler) findRouteFor(dst net.IP) net.Addr { method transportTun (line 257) | func (h *tunHandler) transportTun(tun net.Conn, conn net.PacketConn, r... function TunHandler (line 129) | func TunHandler(opts ...HandlerOption) Handler { function etherType (line 433) | func etherType(et waterutil.Ethertype) string { type TapConfig (line 441) | type TapConfig struct type tapRouteKey (line 449) | type tapRouteKey function hwAddrToTapRouteKey (line 451) | func hwAddrToTapRouteKey(addr net.HardwareAddr) (key tapRouteKey) { type tapListener (line 456) | type tapListener struct method Accept (line 488) | func (l *tapListener) Accept() (net.Conn, error) { method Addr (line 498) | func (l *tapListener) Addr() net.Addr { method Close (line 502) | func (l *tapListener) Close() error { function TapListener (line 464) | func TapListener(cfg TapConfig) (Listener, error) { type tapHandler (line 512) | type tapHandler struct method Init (line 531) | func (h *tapHandler) Init(options ...HandlerOption) { method Handle (line 540) | func (h *tapHandler) Handle(conn net.Conn) { method initTunnelConn (line 621) | func (h *tapHandler) initTunnelConn(pc net.PacketConn) (net.PacketConn... method transportTap (line 633) | func (h *tapHandler) transportTap(tap net.Conn, conn net.PacketConn, r... function TapHandler (line 519) | func TapHandler(opts ...HandlerOption) Handler { type tunTapConn (line 775) | type tunTapConn struct method Read (line 780) | func (c *tunTapConn) Read(b []byte) (n int, err error) { method Write (line 784) | func (c *tunTapConn) Write(b []byte) (n int, err error) { method Close (line 788) | func (c *tunTapConn) Close() (err error) { method LocalAddr (line 792) | func (c *tunTapConn) LocalAddr() net.Addr { method RemoteAddr (line 796) | func (c *tunTapConn) RemoteAddr() net.Addr { method SetDeadline (line 800) | func (c *tunTapConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 804) | func (c *tunTapConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 808) | func (c *tunTapConn) SetWriteDeadline(t time.Time) error { function IsIPv6Multicast (line 813) | func IsIPv6Multicast(addr net.HardwareAddr) bool { FILE: tuntap_darwin.go function createTun (line 14) | func createTun(cfg TunConfig) (conn net.Conn, itf *net.Interface, err er... function createTap (line 61) | func createTap(cfg TapConfig) (conn net.Conn, itf *net.Interface, err er... function addTunRoutes (line 66) | func addTunRoutes(ifName string, routes ...IPRoute) error { FILE: tuntap_linux.go function createTun (line 13) | func createTun(cfg TunConfig) (conn net.Conn, itf *net.Interface, err er... function createTap (line 62) | func createTap(cfg TapConfig) (conn net.Conn, itf *net.Interface, err er... function addTunRoutes (line 116) | func addTunRoutes(ifName string, routes ...IPRoute) error { function addTapRoutes (line 132) | func addTapRoutes(ifName string, gw string, routes ...string) error { function exeCmd (line 148) | func exeCmd(cmd string) error { FILE: tuntap_unix.go function createTun (line 16) | func createTun(cfg TunConfig) (conn net.Conn, itf *net.Interface, err er... function createTap (line 58) | func createTap(cfg TapConfig) (conn net.Conn, itf *net.Interface, err er... function addTunRoutes (line 102) | func addTunRoutes(ifName string, routes ...IPRoute) error { function addTapRoutes (line 117) | func addTapRoutes(ifName string, gw string, routes ...string) error { FILE: tuntap_windows.go function createTun (line 13) | func createTun(cfg TunConfig) (conn net.Conn, itf *net.Interface, err er... function createTap (line 57) | func createTap(cfg TapConfig) (conn net.Conn, itf *net.Interface, err er... function addTunRoutes (line 100) | func addTunRoutes(ifName string, gw string, routes ...IPRoute) error { function addTapRoutes (line 122) | func addTapRoutes(ifName string, gw string, routes ...string) error { function deleteRoute (line 144) | func deleteRoute(ifName string, route string) error { function ipMask (line 151) | func ipMask(mask net.IPMask) string { FILE: udp.go type udpTransporter (line 14) | type udpTransporter struct method Dial (line 21) | func (tr *udpTransporter) Dial(addr string, options ...DialOption) (ne... method Handshake (line 36) | func (tr *udpTransporter) Handshake(conn net.Conn, options ...Handshak... method Multiplex (line 40) | func (tr *udpTransporter) Multiplex() bool { function UDPTransporter (line 17) | func UDPTransporter() Transporter { type UDPListenConfig (line 45) | type UDPListenConfig struct type udpListener (line 51) | type udpListener struct method listenLoop (line 90) | func (l *udpListener) listenLoop() { method Accept (line 136) | func (l *udpListener) Accept() (conn net.Conn, err error) { method Addr (line 148) | func (l *udpListener) Addr() net.Addr { method Close (line 152) | func (l *udpListener) Close() error { function UDPListener (line 60) | func UDPListener(addr string, cfg *UDPListenConfig) (Listener, error) { type udpConnMap (line 162) | type udpConnMap struct method Get (line 167) | func (m *udpConnMap) Get(key interface{}) (conn *udpServerConn, ok boo... method Set (line 175) | func (m *udpConnMap) Set(key interface{}, conn *udpServerConn) { method Delete (line 180) | func (m *udpConnMap) Delete(key interface{}) { method Range (line 185) | func (m *udpConnMap) Range(f func(key interface{}, value *udpServerCon... method Size (line 191) | func (m *udpConnMap) Size() int64 { type udpServerConn (line 196) | type udpServerConn struct method Read (line 236) | func (c *udpServerConn) Read(b []byte) (n int, err error) { method ReadFrom (line 241) | func (c *udpServerConn) ReadFrom(b []byte) (n int, addr net.Addr, err ... method Write (line 263) | func (c *udpServerConn) Write(b []byte) (n int, err error) { method WriteTo (line 267) | func (c *udpServerConn) WriteTo(b []byte, addr net.Addr) (n int, err e... method Close (line 284) | func (c *udpServerConn) Close() error { method ttlWait (line 300) | func (c *udpServerConn) ttlWait() { method LocalAddr (line 324) | func (c *udpServerConn) LocalAddr() net.Addr { method RemoteAddr (line 328) | func (c *udpServerConn) RemoteAddr() net.Addr { method SetDeadline (line 332) | func (c *udpServerConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 336) | func (c *udpServerConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 340) | func (c *udpServerConn) SetWriteDeadline(t time.Time) error { type udpServerConnConfig (line 206) | type udpServerConnConfig struct function newUDPServerConn (line 212) | func newUDPServerConn(conn net.PacketConn, raddr net.Addr, cfg *udpServe... type udpClientConn (line 344) | type udpClientConn struct method WriteTo (line 348) | func (c *udpClientConn) WriteTo(b []byte, addr net.Addr) (int, error) { method ReadFrom (line 352) | func (c *udpClientConn) ReadFrom(b []byte) (n int, addr net.Addr, err ... FILE: vsock.go type vsockTransporter (line 11) | type vsockTransporter struct method Dial (line 18) | func (tr *vsockTransporter) Dial(addr string, options ...DialOption) (... method Handshake (line 61) | func (tr *vsockTransporter) Handshake(conn net.Conn, options ...Handsh... method Multiplex (line 65) | func (tr *vsockTransporter) Multiplex() bool { function VSOCKTransporter (line 14) | func VSOCKTransporter() Transporter { function parseUint32 (line 33) | func parseUint32(s string) (uint32, error ) { function parseAddr (line 41) | func parseAddr(addr string) (*vsock.Addr, error) { function VSOCKListener (line 70) | func VSOCKListener(addr string) (Listener, error) { FILE: ws.go constant defaultWSPath (line 23) | defaultWSPath = "/ws" type WSOptions (line 27) | type WSOptions struct type wsTransporter (line 36) | type wsTransporter struct method Handshake (line 48) | func (tr *wsTransporter) Handshake(conn net.Conn, options ...Handshake... function WSTransporter (line 42) | func WSTransporter(opts *WSOptions) Transporter { type mwsTransporter (line 69) | type mwsTransporter struct method Dial (line 84) | func (tr *mwsTransporter) Dial(addr string, options ...DialOption) (co... method Handshake (line 118) | func (tr *mwsTransporter) Handshake(conn net.Conn, options ...Handshak... method initSession (line 156) | func (tr *mwsTransporter) initSession(addr string, conn net.Conn, opts... method Multiplex (line 186) | func (tr *mwsTransporter) Multiplex() bool { function MWSTransporter (line 77) | func MWSTransporter(opts *WSOptions) Transporter { type wssTransporter (line 190) | type wssTransporter struct method Handshake (line 202) | func (tr *wssTransporter) Handshake(conn net.Conn, options ...Handshak... function WSSTransporter (line 196) | func WSSTransporter(opts *WSOptions) Transporter { type mwssTransporter (line 226) | type mwssTransporter struct method Dial (line 241) | func (tr *mwssTransporter) Dial(addr string, options ...DialOption) (c... method Handshake (line 275) | func (tr *mwssTransporter) Handshake(conn net.Conn, options ...Handsha... method initSession (line 312) | func (tr *mwssTransporter) initSession(addr string, conn net.Conn, opt... method Multiplex (line 346) | func (tr *mwssTransporter) Multiplex() bool { function MWSSTransporter (line 234) | func MWSSTransporter(opts *WSOptions) Transporter { type wsListener (line 350) | type wsListener struct method upgrade (line 412) | func (l *wsListener) upgrade(w http.ResponseWriter, r *http.Request) { method Accept (line 431) | func (l *wsListener) Accept() (conn net.Conn, err error) { method Close (line 439) | func (l *wsListener) Close() error { method Addr (line 443) | func (l *wsListener) Addr() net.Addr { function WSListener (line 359) | func WSListener(addr string, options *WSOptions) (Listener, error) { type mwsListener (line 447) | type mwsListener struct method upgrade (line 510) | func (l *mwsListener) upgrade(w http.ResponseWriter, r *http.Request) { method mux (line 525) | func (l *mwsListener) mux(conn net.Conn) { method Accept (line 554) | func (l *mwsListener) Accept() (conn net.Conn, err error) { method Close (line 562) | func (l *mwsListener) Close() error { method Addr (line 566) | func (l *mwsListener) Addr() net.Addr { function MWSListener (line 456) | func MWSListener(addr string, options *WSOptions) (Listener, error) { type wssListener (line 570) | type wssListener struct function WSSListener (line 575) | func WSSListener(addr string, tlsConfig *tls.Config, options *WSOptions)... type mwssListener (line 636) | type mwssListener struct function MWSSListener (line 641) | func MWSSListener(addr string, tlsConfig *tls.Config, options *WSOptions... function computeAcceptKey (line 704) | func computeAcceptKey(challengeKey string) string { function generateChallengeKey (line 711) | func generateChallengeKey() (string, error) { type websocketConn (line 722) | type websocketConn struct method Read (line 767) | func (c *websocketConn) Read(b []byte) (n int, err error) { method Write (line 776) | func (c *websocketConn) Write(b []byte) (n int, err error) { method Close (line 782) | func (c *websocketConn) Close() error { method LocalAddr (line 786) | func (c *websocketConn) LocalAddr() net.Addr { method RemoteAddr (line 790) | func (c *websocketConn) RemoteAddr() net.Addr { method SetDeadline (line 794) | func (c *websocketConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 800) | func (c *websocketConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 804) | func (c *websocketConn) SetWriteDeadline(t time.Time) error { function websocketClientConn (line 727) | func websocketClientConn(url string, conn net.Conn, tlsConfig *tls.Confi... function websocketServerConn (line 760) | func websocketServerConn(conn *websocket.Conn) net.Conn { FILE: ws_test.go function httpOverWSRoundtrip (line 11) | func httpOverWSRoundtrip(targetURL string, data []byte, function TestHTTPOverWS (line 37) | func TestHTTPOverWS(t *testing.T) { function BenchmarkHTTPOverWS (line 61) | func BenchmarkHTTPOverWS(b *testing.B) { function BenchmarkHTTPOverWSParallel (line 94) | func BenchmarkHTTPOverWSParallel(b *testing.B) { function socks5OverWSRoundtrip (line 129) | func socks5OverWSRoundtrip(targetURL string, data []byte, function TestSOCKS5OverWS (line 155) | func TestSOCKS5OverWS(t *testing.T) { function socks4OverWSRoundtrip (line 180) | func socks4OverWSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverWS (line 202) | func TestSOCKS4OverWS(t *testing.T) { function socks4aOverWSRoundtrip (line 216) | func socks4aOverWSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverWS (line 238) | func TestSOCKS4AOverWS(t *testing.T) { function ssOverWSRoundtrip (line 253) | func ssOverWSRoundtrip(targetURL string, data []byte, function TestSSOverWS (line 279) | func TestSSOverWS(t *testing.T) { function sniOverWSRoundtrip (line 304) | func sniOverWSRoundtrip(targetURL string, data []byte, host string) error { function TestSNIOverWS (line 331) | func TestSNIOverWS(t *testing.T) { function wsForwardTunnelRoundtrip (line 369) | func wsForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestWSForwardTunnel (line 397) | func TestWSForwardTunnel(t *testing.T) { function httpOverMWSRoundtrip (line 410) | func httpOverMWSRoundtrip(targetURL string, data []byte, function TestHTTPOverMWS (line 436) | func TestHTTPOverMWS(t *testing.T) { function BenchmarkHTTPOverMWS (line 460) | func BenchmarkHTTPOverMWS(b *testing.B) { function BenchmarkHTTPOverMWSParallel (line 493) | func BenchmarkHTTPOverMWSParallel(b *testing.B) { function socks5OverMWSRoundtrip (line 529) | func socks5OverMWSRoundtrip(targetURL string, data []byte, function TestSOCKS5OverMWS (line 555) | func TestSOCKS5OverMWS(t *testing.T) { function socks4OverMWSRoundtrip (line 580) | func socks4OverMWSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverMWS (line 602) | func TestSOCKS4OverMWS(t *testing.T) { function socks4aOverMWSRoundtrip (line 616) | func socks4aOverMWSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverMWS (line 638) | func TestSOCKS4AOverMWS(t *testing.T) { function ssOverMWSRoundtrip (line 653) | func ssOverMWSRoundtrip(targetURL string, data []byte, function TestSSOverMWS (line 679) | func TestSSOverMWS(t *testing.T) { function sniOverMWSRoundtrip (line 704) | func sniOverMWSRoundtrip(targetURL string, data []byte, host string) err... function TestSNIOverMWS (line 731) | func TestSNIOverMWS(t *testing.T) { function mwsForwardTunnelRoundtrip (line 769) | func mwsForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestMWSForwardTunnel (line 797) | func TestMWSForwardTunnel(t *testing.T) { FILE: wss_test.go function httpOverWSSRoundtrip (line 12) | func httpOverWSSRoundtrip(targetURL string, data []byte, tlsConfig *tls.... function TestHTTPOverWSS (line 38) | func TestHTTPOverWSS(t *testing.T) { function BenchmarkHTTPOverWSS (line 62) | func BenchmarkHTTPOverWSS(b *testing.B) { function BenchmarkHTTPOverWSSParallel (line 95) | func BenchmarkHTTPOverWSSParallel(b *testing.B) { function socks5OverWSSRoundtrip (line 130) | func socks5OverWSSRoundtrip(targetURL string, data []byte, function TestSOCKS5OverWSS (line 156) | func TestSOCKS5OverWSS(t *testing.T) { function socks4OverWSSRoundtrip (line 181) | func socks4OverWSSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverWSS (line 203) | func TestSOCKS4OverWSS(t *testing.T) { function socks4aOverWSSRoundtrip (line 217) | func socks4aOverWSSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverWSS (line 239) | func TestSOCKS4AOverWSS(t *testing.T) { function ssOverWSSRoundtrip (line 254) | func ssOverWSSRoundtrip(targetURL string, data []byte, function TestSSOverWSS (line 280) | func TestSSOverWSS(t *testing.T) { function sniOverWSSRoundtrip (line 305) | func sniOverWSSRoundtrip(targetURL string, data []byte, host string) err... function TestSNIOverWSS (line 332) | func TestSNIOverWSS(t *testing.T) { function wssForwardTunnelRoundtrip (line 370) | func wssForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestWSSForwardTunnel (line 398) | func TestWSSForwardTunnel(t *testing.T) { function httpOverMWSSRoundtrip (line 411) | func httpOverMWSSRoundtrip(targetURL string, data []byte, function TestHTTPOverMWSS (line 437) | func TestHTTPOverMWSS(t *testing.T) { function BenchmarkHTTPOverMWSS (line 461) | func BenchmarkHTTPOverMWSS(b *testing.B) { function BenchmarkHTTPOverMWSSParallel (line 494) | func BenchmarkHTTPOverMWSSParallel(b *testing.B) { function socks5OverMWSSRoundtrip (line 530) | func socks5OverMWSSRoundtrip(targetURL string, data []byte, function TestSOCKS5OverMWSS (line 556) | func TestSOCKS5OverMWSS(t *testing.T) { function socks4OverMWSSRoundtrip (line 581) | func socks4OverMWSSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4OverMWSS (line 603) | func TestSOCKS4OverMWSS(t *testing.T) { function socks4aOverMWSSRoundtrip (line 617) | func socks4aOverMWSSRoundtrip(targetURL string, data []byte) error { function TestSOCKS4AOverMWSS (line 639) | func TestSOCKS4AOverMWSS(t *testing.T) { function ssOverMWSSRoundtrip (line 654) | func ssOverMWSSRoundtrip(targetURL string, data []byte, function TestSSOverMWSS (line 680) | func TestSSOverMWSS(t *testing.T) { function sniOverMWSSRoundtrip (line 705) | func sniOverMWSSRoundtrip(targetURL string, data []byte, host string) er... function TestSNIOverMWSS (line 732) | func TestSNIOverMWSS(t *testing.T) { function mwssForwardTunnelRoundtrip (line 770) | func mwssForwardTunnelRoundtrip(targetURL string, data []byte) error { function TestMWSSForwardTunnel (line 798) | func TestMWSSForwardTunnel(t *testing.T) {