client

package
v0.66.0 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2026 License: Apache-2.0 Imports: 29 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(name string, fn CreatorFn)

Types

type ConnectionInfo added in v0.62.0

type ConnectionInfo struct {
	Conn           io.ReadWriteCloser
	UnderlyingConn net.Conn

	ProxyProtocolHeader *pp.Header
	SrcAddr             net.Addr
	DstAddr             net.Addr
}

type CreatorFn

type CreatorFn func(pluginCtx PluginContext, options v1.ClientPluginOptions) (Plugin, error)

type HTTP2HTTPPlugin added in v0.59.0

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

func (*HTTP2HTTPPlugin) Close added in v0.59.0

func (p *HTTP2HTTPPlugin) Close() error

func (*HTTP2HTTPPlugin) Handle added in v0.59.0

func (p *HTTP2HTTPPlugin) Handle(_ context.Context, connInfo *ConnectionInfo)

func (*HTTP2HTTPPlugin) Name added in v0.59.0

func (p *HTTP2HTTPPlugin) Name() string

type HTTP2HTTPSPlugin

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

func (*HTTP2HTTPSPlugin) Close

func (p *HTTP2HTTPSPlugin) Close() error

func (*HTTP2HTTPSPlugin) Handle

func (p *HTTP2HTTPSPlugin) Handle(_ context.Context, connInfo *ConnectionInfo)

func (*HTTP2HTTPSPlugin) Name

func (p *HTTP2HTTPSPlugin) Name() string

type HTTPProxy

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

func (*HTTPProxy) Auth

func (hp *HTTPProxy) Auth(req *http.Request) bool

func (*HTTPProxy) Close

func (hp *HTTPProxy) Close() error

func (*HTTPProxy) ConnectHandler

func (hp *HTTPProxy) ConnectHandler(rw http.ResponseWriter, req *http.Request)

deprecated Hijack needs to SetReadDeadline on the Conn of the request, but if we use stream compression here, we may always get i/o timeout error.

func (*HTTPProxy) HTTPHandler

func (hp *HTTPProxy) HTTPHandler(rw http.ResponseWriter, req *http.Request)

func (*HTTPProxy) Handle

func (hp *HTTPProxy) Handle(_ context.Context, connInfo *ConnectionInfo)

func (*HTTPProxy) Name

func (hp *HTTPProxy) Name() string

func (*HTTPProxy) ServeHTTP

func (hp *HTTPProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request)

type HTTPS2HTTPPlugin

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

func (*HTTPS2HTTPPlugin) Close

func (p *HTTPS2HTTPPlugin) Close() error

func (*HTTPS2HTTPPlugin) Handle

func (p *HTTPS2HTTPPlugin) Handle(_ context.Context, connInfo *ConnectionInfo)

func (*HTTPS2HTTPPlugin) Name

func (p *HTTPS2HTTPPlugin) Name() string

type HTTPS2HTTPSPlugin added in v0.36.0

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

func (*HTTPS2HTTPSPlugin) Close added in v0.36.0

func (p *HTTPS2HTTPSPlugin) Close() error

func (*HTTPS2HTTPSPlugin) Handle added in v0.36.0

func (p *HTTPS2HTTPSPlugin) Handle(_ context.Context, connInfo *ConnectionInfo)

func (*HTTPS2HTTPSPlugin) Name added in v0.36.0

func (p *HTTPS2HTTPSPlugin) Name() string

type Listener

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

func NewProxyListener

func NewProxyListener() *Listener

func (*Listener) Accept

func (l *Listener) Accept() (net.Conn, error)

func (*Listener) Addr

func (l *Listener) Addr() net.Addr

func (*Listener) Close

func (l *Listener) Close() error

func (*Listener) PutConn

func (l *Listener) PutConn(conn net.Conn) error

type Plugin

type Plugin interface {
	Name() string

	Handle(ctx context.Context, connInfo *ConnectionInfo)
	Close() error
}

func Create

func Create(pluginName string, pluginCtx PluginContext, options v1.ClientPluginOptions) (p Plugin, err error)

func NewHTTP2HTTPPlugin added in v0.59.0

func NewHTTP2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error)

func NewHTTP2HTTPSPlugin

func NewHTTP2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error)

func NewHTTPProxyPlugin

func NewHTTPProxyPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error)

func NewHTTPS2HTTPPlugin

func NewHTTPS2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error)

func NewHTTPS2HTTPSPlugin added in v0.36.0

func NewHTTPS2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error)

func NewSocks5Plugin

func NewSocks5Plugin(_ PluginContext, options v1.ClientPluginOptions) (p Plugin, err error)

func NewStaticFilePlugin

func NewStaticFilePlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error)

func NewTLS2RawPlugin added in v0.60.0

func NewTLS2RawPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin, error)

func NewUnixDomainSocketPlugin

func NewUnixDomainSocketPlugin(_ PluginContext, options v1.ClientPluginOptions) (p Plugin, err error)

func NewVirtualNetPlugin added in v0.62.0

func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.ClientPluginOptions) (Plugin, error)

type PluginContext added in v0.62.0

type PluginContext struct {
	Name           string
	VnetController *vnet.Controller
}

type Socks5Plugin

type Socks5Plugin struct {
	Server *gosocks5.Server
}

func (*Socks5Plugin) Close

func (sp *Socks5Plugin) Close() error

func (*Socks5Plugin) Handle

func (sp *Socks5Plugin) Handle(_ context.Context, connInfo *ConnectionInfo)

func (*Socks5Plugin) Name

func (sp *Socks5Plugin) Name() string

type StaticFilePlugin

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

func (*StaticFilePlugin) Close

func (sp *StaticFilePlugin) Close() error

func (*StaticFilePlugin) Handle

func (sp *StaticFilePlugin) Handle(_ context.Context, connInfo *ConnectionInfo)

func (*StaticFilePlugin) Name

func (sp *StaticFilePlugin) Name() string

type TLS2RawPlugin added in v0.60.0

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

func (*TLS2RawPlugin) Close added in v0.60.0

func (p *TLS2RawPlugin) Close() error

func (*TLS2RawPlugin) Handle added in v0.60.0

func (p *TLS2RawPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo)

func (*TLS2RawPlugin) Name added in v0.60.0

func (p *TLS2RawPlugin) Name() string

type UnixDomainSocketPlugin

type UnixDomainSocketPlugin struct {
	UnixAddr *net.UnixAddr
}

func (*UnixDomainSocketPlugin) Close

func (uds *UnixDomainSocketPlugin) Close() error

func (*UnixDomainSocketPlugin) Handle

func (uds *UnixDomainSocketPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo)

func (*UnixDomainSocketPlugin) Name

func (uds *UnixDomainSocketPlugin) Name() string

type VirtualNetPlugin added in v0.62.0

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

func (*VirtualNetPlugin) Close added in v0.62.0

func (p *VirtualNetPlugin) Close() error

func (*VirtualNetPlugin) Handle added in v0.62.0

func (p *VirtualNetPlugin) Handle(ctx context.Context, connInfo *ConnectionInfo)

func (*VirtualNetPlugin) Name added in v0.62.0

func (p *VirtualNetPlugin) Name() string

func (*VirtualNetPlugin) RemoveConn added in v0.62.1

func (p *VirtualNetPlugin) RemoveConn(conn io.ReadWriteCloser)

Jump to

Keyboard shortcuts

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