Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
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
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
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.
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.
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.