routing

package
v0.22.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidSSHUser = fmt.Errorf("invalid SSH user")
)

Functions

This section is empty.

Types

type ConsulEncodeDecoder

type ConsulEncodeDecoder struct{}

ConsulEncodeDecoder implements EncodeDecoder for Consul routing mode

func (*ConsulEncodeDecoder) Decode

func (c *ConsulEncodeDecoder) Decode(sshUser string) (sessionID, nodeAddr string, err error)

func (*ConsulEncodeDecoder) Encode

func (c *ConsulEncodeDecoder) Encode(sessionID, nodeAddr string) string

func (*ConsulEncodeDecoder) Mode

func (c *ConsulEncodeDecoder) Mode() Mode

type Decoder

type Decoder interface {
	// Decode decodes an SSH username into session ID and node address
	Decode(sshUser string) (sessionID, nodeAddr string, err error)
}

Decoder defines the interface for decoding SSH usernames into session information

func NewDecoder

func NewDecoder(mode Mode) Decoder

NewDecoder creates a Decoder for the specified routing mode

type EmbeddedEncodeDecoder

type EmbeddedEncodeDecoder struct{}

EmbeddedEncodeDecoder implements EncodeDecoder for embedded routing mode

func (*EmbeddedEncodeDecoder) Decode

func (e *EmbeddedEncodeDecoder) Decode(sshUser string) (sessionID, nodeAddr string, err error)

func (*EmbeddedEncodeDecoder) Encode

func (e *EmbeddedEncodeDecoder) Encode(sessionID, nodeAddr string) string

func (*EmbeddedEncodeDecoder) Mode

func (e *EmbeddedEncodeDecoder) Mode() Mode

type EncodeDecoder

type EncodeDecoder interface {
	Encoder
	Decoder
	ModeProvider
}

EncodeDecoder defines the composite interface for encoding and decoding SSH usernames

func NewEncodeDecoder

func NewEncodeDecoder(mode Mode) EncodeDecoder

NewEncodeDecoder creates an EncodeDecoder for the specified routing mode

type Encoder

type Encoder interface {
	// Encode encodes a session ID and node address into an SSH username
	Encode(sessionID, nodeAddr string) string
}

Encoder defines the interface for encoding session information into SSH usernames

func NewEncoder

func NewEncoder(mode Mode) Encoder

NewEncoder creates an Encoder for the specified routing mode

type Mode

type Mode string

Mode defines how session routing information is stored and encoded

const (
	// ModeEmbedded embeds node address in the session identifier (default)
	ModeEmbedded Mode = "embedded"
	// ModeConsul looks up node address from Consul
	ModeConsul Mode = "consul"
)

type ModeProvider

type ModeProvider interface {
	// Mode returns the routing mode for this encoder/decoder
	Mode() Mode
}

ModeProvider defines the interface for getting the routing mode

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL