plugin

package
v0.58.1 Latest Latest
Warning

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

Go to latest
Published: May 31, 2024 License: Apache-2.0 Imports: 24 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(name string, fn CreatorFn)

Types

type CreatorFn

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

params has prefix "plugin_"

type ExtraInfo added in v0.52.0

type ExtraInfo struct {
	ProxyProtocolHeader *pp.Header
	SrcAddr             net.Addr
	DstAddr             net.Addr
}

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(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo)

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(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo)

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(conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo)

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(conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo)

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(conn io.ReadWriteCloser, realConn net.Conn, extra *ExtraInfo)
	Close() error
}

func Create

func Create(name string, options v1.ClientPluginOptions) (p Plugin, err error)

func NewHTTP2HTTPSPlugin

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

func NewHTTPProxyPlugin

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

func NewHTTPS2HTTPPlugin

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

func NewHTTPS2HTTPSPlugin added in v0.36.0

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

func NewSocks5Plugin

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

func NewStaticFilePlugin

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

func NewUnixDomainSocketPlugin

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

type Socks5Plugin

type Socks5Plugin struct {
	Server *gosocks5.Server
}

func (*Socks5Plugin) Close

func (sp *Socks5Plugin) Close() error

func (*Socks5Plugin) Handle

func (sp *Socks5Plugin) Handle(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo)

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(conn io.ReadWriteCloser, realConn net.Conn, _ *ExtraInfo)

func (*StaticFilePlugin) Name

func (sp *StaticFilePlugin) 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(conn io.ReadWriteCloser, _ net.Conn, extra *ExtraInfo)

func (*UnixDomainSocketPlugin) Name

func (uds *UnixDomainSocketPlugin) Name() string

Jump to

Keyboard shortcuts

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