Documentation
¶
Index ¶
Constants ¶
const CloseTimeout = 10 * time.Second
CloseTimeout is the timeout to wait CLOSE_RSP packet after a successful delivery of CLOSE_REQ.
Variables ¶
var ( // Expose metrics for client to register. Metrics = metrics.Metrics )
Functions ¶
func GetDialFailureReason ¶ added in v0.0.33
func GetDialFailureReason(err error) (isDialFailure bool, reason metrics.DialFailureReason)
Types ¶
type Tunnel ¶
type Tunnel interface { // Dial connects to the address on the named network, similar to // what net.Dial does. The only supported protocol is tcp. DialContext(requestCtx context.Context, protocol, address string) (net.Conn, error) // Done returns a channel that is closed when the tunnel is no longer serving any connections, // and can no longer be used. Done() <-chan struct{} }
Tunnel provides ability to dial a connection through a tunnel.
func CreateSingleUseGrpcTunnel ¶ added in v0.0.9
func CreateSingleUseGrpcTunnel(tunnelCtx context.Context, address string, opts ...grpc.DialOption) (Tunnel, error)
CreateSingleUseGrpcTunnel creates a Tunnel to dial to a remote server through a gRPC based proxy service. Currently, a single tunnel supports a single connection, and the tunnel is closed when the connection is terminated The Dial() method of the returned tunnel should only be called once Deprecated 2022-06-07: use CreateSingleUseGrpcTunnelWithContext
func CreateSingleUseGrpcTunnelWithContext ¶ added in v0.0.32
func CreateSingleUseGrpcTunnelWithContext(createCtx, tunnelCtx context.Context, address string, opts ...grpc.DialOption) (Tunnel, error)
CreateSingleUseGrpcTunnelWithContext creates a Tunnel to dial to a remote server through a gRPC based proxy service. Currently, a single tunnel supports a single connection. The tunnel is normally closed when the connection is terminated. If createCtx is cancelled before tunnel creation, an error will be returned. If tunnelCtx is cancelled while the tunnel is still in use, the tunnel (and any in flight connections) will be closed. The Dial() method of the returned tunnel should only be called once