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.52.4
type HTTPGroup struct {
// contains filtered or unexported fields
}
func NewHTTPGroup ¶ added in v0.52.4
func NewHTTPGroup(ctl *HTTPGroupController) *HTTPGroup
func (*HTTPGroup) Register ¶ added in v0.52.4
func (g *HTTPGroup) Register( proxyName, group, groupKey string, routeConfig vhost.RouteConfig, ) (err error)
func (*HTTPGroup) UnRegister ¶ added in v0.52.4
type HTTPGroupController ¶ added in v0.52.4
type HTTPGroupController struct {
// contains filtered or unexported fields
}
func NewHTTPGroupController ¶ added in v0.52.4
func NewHTTPGroupController(vhostRouter *vhost.Routers) *HTTPGroupController
func (*HTTPGroupController) Register ¶ added in v0.52.4
func (ctl *HTTPGroupController) Register( proxyName, group, groupKey string, routeConfig vhost.RouteConfig, ) (err error)
func (*HTTPGroupController) UnRegister ¶ added in v0.52.4
func (ctl *HTTPGroupController) UnRegister(proxyName, group string, _ vhost.RouteConfig)
type TCPGroup ¶ added in v0.52.4
type TCPGroup struct {
// contains filtered or unexported fields
}
TCPGroup route connections to different proxies
func NewTCPGroup ¶ added in v0.52.4
func NewTCPGroup(ctl *TCPGroupCtl) *TCPGroup
NewTCPGroup return a new TCPGroup
func (*TCPGroup) CloseListener ¶ added in v0.52.4
func (tg *TCPGroup) CloseListener(ln *TCPGroupListener)
CloseListener remove the TCPGroupListener from the TCPGroup
func (*TCPGroup) Listen ¶ added in v0.52.4
func (tg *TCPGroup) Listen(proxyName string, group string, groupKey string, addr string, port int) (ln *TCPGroupListener, realPort int, err error)
Listen will return a new TCPGroupListener if TCPGroup already has a listener, just add a new TCPGroupListener to the queues otherwise, listen on the real address
type TCPGroupCtl ¶ added in v0.52.4
type TCPGroupCtl struct {
// contains filtered or unexported fields
}
TCPGroupCtl manage all TCPGroups
func NewTCPGroupCtl ¶ added in v0.52.4
func NewTCPGroupCtl(portManager *ports.Manager) *TCPGroupCtl
NewTCPGroupCtl return a new TcpGroupCtl
func (*TCPGroupCtl) Listen ¶ added in v0.52.4
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 are no group, we will create one here
func (*TCPGroupCtl) RemoveGroup ¶ added in v0.52.4
func (tgc *TCPGroupCtl) RemoveGroup(group string)
RemoveGroup remove TCPGroup from controller
type TCPGroupListener ¶ added in v0.52.4
type TCPGroupListener struct {
// contains filtered or unexported fields
}
TCPGroupListener
func (*TCPGroupListener) Accept ¶ added in v0.52.4
func (ln *TCPGroupListener) Accept() (c net.Conn, err error)
Accept will accept connections from TCPGroup
func (*TCPGroupListener) Addr ¶ added in v0.52.4
func (ln *TCPGroupListener) Addr() net.Addr
func (*TCPGroupListener) Close ¶ added in v0.52.4
func (ln *TCPGroupListener) Close() (err error)
Close close the listener
type TCPMuxGroup ¶ added in v0.52.4
type TCPMuxGroup struct {
// contains filtered or unexported fields
}
TCPMuxGroup route connections to different proxies
func NewTCPMuxGroup ¶ added in v0.52.4
func NewTCPMuxGroup(ctl *TCPMuxGroupCtl) *TCPMuxGroup
NewTCPMuxGroup return a new TCPMuxGroup
func (*TCPMuxGroup) Accept ¶ added in v0.52.4
func (tmg *TCPMuxGroup) Accept() <-chan net.Conn
func (*TCPMuxGroup) CloseListener ¶ added in v0.52.4
func (tmg *TCPMuxGroup) CloseListener(ln *TCPMuxGroupListener)
CloseListener remove the TCPMuxGroupListener from the TCPMuxGroup
func (*TCPMuxGroup) HTTPConnectListen ¶ added in v0.52.4
func (tmg *TCPMuxGroup) HTTPConnectListen( ctx context.Context, group, groupKey string, routeConfig vhost.RouteConfig, ) (ln *TCPMuxGroupListener, err error)
Listen will return a new TCPMuxGroupListener if TCPMuxGroup already has a listener, just add a new TCPMuxGroupListener to the queues otherwise, listen on the real address
type TCPMuxGroupCtl ¶ added in v0.52.4
type TCPMuxGroupCtl struct {
// contains filtered or unexported fields
}
TCPMuxGroupCtl manage all TCPMuxGroups
func NewTCPMuxGroupCtl ¶ added in v0.52.4
func NewTCPMuxGroupCtl(tcpMuxHTTPConnectMuxer *tcpmux.HTTPConnectTCPMuxer) *TCPMuxGroupCtl
NewTCPMuxGroupCtl return a new TCPMuxGroupCtl
func (*TCPMuxGroupCtl) Listen ¶ added in v0.52.4
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 are no group, we will create one here
func (*TCPMuxGroupCtl) RemoveGroup ¶ added in v0.52.4
func (tmgc *TCPMuxGroupCtl) RemoveGroup(group string)
RemoveGroup remove TCPMuxGroup from controller
type TCPMuxGroupListener ¶ added in v0.52.4
type TCPMuxGroupListener struct {
// contains filtered or unexported fields
}
TCPMuxGroupListener
func (*TCPMuxGroupListener) Accept ¶ added in v0.52.4
func (ln *TCPMuxGroupListener) Accept() (c net.Conn, err error)
Accept will accept connections from TCPMuxGroup
func (*TCPMuxGroupListener) Addr ¶ added in v0.52.4
func (ln *TCPMuxGroupListener) Addr() net.Addr
func (*TCPMuxGroupListener) Close ¶ added in v0.52.4
func (ln *TCPMuxGroupListener) Close() (err error)
Close close the listener