Documentation
¶
Index ¶
Constants ¶
View Source
const (
ModuleName = "reverse_tunnel"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Tunnel ¶
type Tunnel interface {
// ForwardStream performs bi-directional message forwarding between incomingStream and the tunnel.
// cb is called with header, messages and trailer coming from the tunnel. It's the callers
// responsibility to forward them into the incomingStream.
ForwardStream(log *zap.Logger, rpcApi RpcApi, incomingStream grpc.ServerStream, cb TunnelDataCallback) error
// Done must be called when the caller is done with the Tunnel.
Done()
}
type TunnelDataCallback ¶
type TunnelFinder ¶
type TunnelFinder interface {
// FindTunnel finds a tunnel to a matching agentk.
// It waits for a matching tunnel to proxy a connection through. When a matching tunnel is found, it is returned.
// It only returns errors from the context or context.Canceled if the finder is shutting down.
// service and method and gRPC service and method that the agent must support.
FindTunnel(ctx context.Context, agentId int64, service, method string) (Tunnel, error)
}
type TunnelHandler ¶
type TunnelHandler interface {
// HandleTunnel is called with server-side interface of the reverse tunnel.
// It registers the tunnel and blocks, waiting for a request to proxy through the tunnel.
// The method returns the error value to return to gRPC framework.
// ctx can be used to unblock the method if the tunnel is not being used already.
// ctx should be a child of the server's context.
HandleTunnel(ctx context.Context, agentInfo *api.AgentInfo, server rpc.ReverseTunnel_ConnectServer) error
}
type TunnelRegistry ¶
type TunnelRegistry struct {
// contains filtered or unexported fields
}
func NewTunnelRegistry ¶
func NewTunnelRegistry(log *zap.Logger, tunnelRegisterer tracker.Registerer, ownPrivateApiUrl string) (*TunnelRegistry, error)
func (*TunnelRegistry) FindTunnel ¶
func (*TunnelRegistry) HandleTunnel ¶
func (r *TunnelRegistry) HandleTunnel(ctx context.Context, agentInfo *api.AgentInfo, server rpc.ReverseTunnel_ConnectServer) error
Click to show internal directories.
Click to hide internal directories.