group

package
v0.68.0 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2026 License: Apache-2.0 Imports: 12 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrGroupAuthFailed    = errors.New("group auth failed")
	ErrGroupParamsInvalid = errors.New("group params invalid")
	ErrListenerClosed     = errors.New("group listener closed")
	ErrGroupDifferentPort = errors.New("group should have same remote port")
	ErrProxyRepeated      = errors.New("group proxy repeated")
)

Functions

This section is empty.

Types

type HTTPGroup added in v0.28.0

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

func NewHTTPGroup added in v0.28.0

func NewHTTPGroup(ctl *HTTPGroupController) *HTTPGroup

func (*HTTPGroup) Register added in v0.28.0

func (g *HTTPGroup) Register(
	proxyName, group, groupKey string,
	routeConfig vhost.RouteConfig,
) (err error)

func (*HTTPGroup) UnRegister added in v0.28.0

func (g *HTTPGroup) UnRegister(proxyName string)

type HTTPGroupController added in v0.28.0

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

HTTPGroupController manages HTTP groups that use round-robin callback routing (fundamentally different from listener-based groups).

func NewHTTPGroupController added in v0.28.0

func NewHTTPGroupController(vhostRouter *vhost.Routers) *HTTPGroupController

func (*HTTPGroupController) Register added in v0.28.0

func (ctl *HTTPGroupController) Register(
	proxyName, group, groupKey string,
	routeConfig vhost.RouteConfig,
) error

func (*HTTPGroupController) UnRegister added in v0.28.0

func (ctl *HTTPGroupController) UnRegister(proxyName, group string, _ vhost.RouteConfig)

type HTTPSGroup added in v0.66.0

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

func NewHTTPSGroup added in v0.66.0

func NewHTTPSGroup(ctl *HTTPSGroupController) *HTTPSGroup

func (*HTTPSGroup) Listen added in v0.66.0

func (g *HTTPSGroup) Listen(
	ctx context.Context,
	group, groupKey string,
	routeConfig vhost.RouteConfig,
) (ln *Listener, err error)

type HTTPSGroupController added in v0.66.0

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

func NewHTTPSGroupController added in v0.66.0

func NewHTTPSGroupController(httpsMuxer *vhost.HTTPSMuxer) *HTTPSGroupController

func (*HTTPSGroupController) Listen added in v0.66.0

func (ctl *HTTPSGroupController) Listen(
	ctx context.Context,
	group, groupKey string,
	routeConfig vhost.RouteConfig,
) (l net.Listener, err error)

type Listener added in v0.68.0

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

Listener is a per-proxy virtual listener that receives connections from a shared group. It implements net.Listener.

func (*Listener) Accept added in v0.68.0

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

func (*Listener) Addr added in v0.68.0

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

func (*Listener) Close added in v0.68.0

func (ln *Listener) Close() error

type TCPGroup added in v0.34.0

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

TCPGroup routes connections to different proxies.

func NewTCPGroup added in v0.34.0

func NewTCPGroup(ctl *TCPGroupCtl) *TCPGroup

NewTCPGroup returns a new TCPGroup.

func (*TCPGroup) Listen added in v0.34.0

func (tg *TCPGroup) Listen(proxyName string, group string, groupKey string, addr string, port int) (ln *Listener, realPort int, err error)

Listen will return a new Listener. If TCPGroup already has a listener, just add a new Listener to the queues, otherwise listen on the real address.

type TCPGroupCtl added in v0.34.0

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

TCPGroupCtl manages all TCPGroups.

func NewTCPGroupCtl added in v0.34.0

func NewTCPGroupCtl(portManager *ports.Manager) *TCPGroupCtl

NewTCPGroupCtl returns a new TCPGroupCtl.

func (*TCPGroupCtl) Listen added in v0.34.0

func (tgc *TCPGroupCtl) Listen(proxyName string, group string, groupKey string,
	addr string, port int,
) (l net.Listener, realPort int, err error)

Listen is the wrapper for TCPGroup's Listen. If there is no group, one will be created.

type TCPMuxGroup added in v0.34.0

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

TCPMuxGroup routes connections to different proxies.

func NewTCPMuxGroup added in v0.34.0

func NewTCPMuxGroup(ctl *TCPMuxGroupCtl) *TCPMuxGroup

NewTCPMuxGroup returns a new TCPMuxGroup.

func (*TCPMuxGroup) HTTPConnectListen added in v0.34.0

func (tmg *TCPMuxGroup) HTTPConnectListen(
	ctx context.Context,
	group, groupKey string,
	routeConfig vhost.RouteConfig,
) (ln *Listener, err error)

HTTPConnectListen will return a new Listener. If TCPMuxGroup already has a listener, just add a new Listener to the queues, otherwise listen on the real address.

type TCPMuxGroupCtl added in v0.34.0

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

TCPMuxGroupCtl manages all TCPMuxGroups.

func NewTCPMuxGroupCtl added in v0.34.0

func NewTCPMuxGroupCtl(tcpMuxHTTPConnectMuxer *tcpmux.HTTPConnectTCPMuxer) *TCPMuxGroupCtl

NewTCPMuxGroupCtl returns a new TCPMuxGroupCtl.

func (*TCPMuxGroupCtl) Listen added in v0.34.0

func (tmgc *TCPMuxGroupCtl) Listen(
	ctx context.Context,
	multiplexer, group, groupKey string,
	routeConfig vhost.RouteConfig,
) (l net.Listener, err error)

Listen is the wrapper for TCPMuxGroup's Listen. If there is no group, one will be created.

Jump to

Keyboard shortcuts

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