Documentation
¶
Index ¶
- type Control
- func (ctl *Control) Close() error
- func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error)
- func (ctl *Control) GetWorkConn() (workConn net.Conn, err error)
- func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err error)
- func (ctl *Control) RegisterWorkConn(conn net.Conn) error
- func (ctl *Control) Replaced(newCtl *Control)
- func (ctl *Control) Start()
- func (ctl *Control) WaitClosed()
- type ControlManager
- type Service
- func (svr *Service) Close() error
- func (svr *Service) HandleListener(l net.Listener, internal bool)
- func (svr *Service) HandleQUICListener(l *quic.Listener)
- func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Login, internal bool) error
- func (svr *Service) RegisterVisitorConn(visitorConn net.Conn, newMsg *msg.NewVisitorConn) error
- func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.NewWorkConn) error
- func (svr *Service) Run(ctx context.Context)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Control ¶
type Control struct {
// contains filtered or unexported fields
}
func NewControl ¶
func NewControl( ctx context.Context, rc *controller.ResourceController, pxyManager *proxy.Manager, pluginManager *plugin.Manager, authVerifier auth.Verifier, encryptionKey []byte, ctlConn net.Conn, ctlConnEncrypted bool, loginMsg *msg.Login, serverCfg *v1.ServerConfig, ) (*Control, error)
TODO(fatedier): Referencing the implementation of frpc, encapsulate the input parameters as SessionContext.
func (*Control) CloseProxy ¶ added in v0.12.0
func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error)
func (*Control) GetWorkConn ¶
When frps get one user connection, we get one work connection from the pool and return it. If no workConn available in the pool, send message to frpc to get one or more and wait until it is available. return an error if wait timeout
func (*Control) RegisterProxy ¶
func (*Control) Start ¶
func (ctl *Control) Start()
Start send a login success message to client and start working.
func (*Control) WaitClosed ¶ added in v0.23.0
func (ctl *Control) WaitClosed()
block until Control closed
type ControlManager ¶
type ControlManager struct {
// contains filtered or unexported fields
}
func NewControlManager ¶
func NewControlManager() *ControlManager
func (*ControlManager) Add ¶
func (cm *ControlManager) Add(runID string, ctl *Control) (old *Control)
func (*ControlManager) Close ¶ added in v0.49.0
func (cm *ControlManager) Close() error
func (*ControlManager) Del ¶ added in v0.23.0
func (cm *ControlManager) Del(runID string, ctl *Control)
we should make sure if it's the same control to prevent delete a new one
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Server service
func NewService ¶
func NewService(cfg *v1.ServerConfig) (*Service, error)
func (*Service) HandleListener ¶ added in v0.12.0
HandleListener accepts connections from client and call handleConnection to handle them. If internal is true, it means that this listener is used for internal communication like ssh tunnel gateway. TODO(fatedier): Pass some parameters of listener/connection through context to avoid passing too many parameters.
func (*Service) HandleQUICListener ¶ added in v0.46.0
func (*Service) RegisterControl ¶
func (*Service) RegisterVisitorConn ¶ added in v0.14.0
func (*Service) RegisterWorkConn ¶
RegisterWorkConn register a new work connection to control and proxies need it.