Documentation
¶
Overview ¶
Package peerexchange orchestrates peer endpoint exchange for plexd mesh nodes.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
Config holds the configuration for peer endpoint exchange. It embeds nat.Config to reuse NAT traversal settings.
func (*Config) ApplyDefaults ¶
func (c *Config) ApplyDefaults()
ApplyDefaults sets default values for zero-valued fields.
type Exchanger ¶
type Exchanger struct {
// contains filtered or unexported fields
}
Exchanger orchestrates peer endpoint exchange: STUN discovery, control plane reporting, and WireGuard peer endpoint updates.
func NewExchanger ¶
func NewExchanger(discoverer *nat.Discoverer, wgManager *wireguard.Manager, cpClient *api.ControlPlane, cfg Config, logger *slog.Logger) *Exchanger
NewExchanger creates a new Exchanger.
func (*Exchanger) LastResult ¶
LastResult returns the most recently discovered NAT info.
func (*Exchanger) RegisterHandlers ¶
func (e *Exchanger) RegisterHandlers(sseManager *api.SSEManager)
RegisterHandlers registers SSE event handlers for peer endpoint changes. Must be called before the SSEManager is started. Handlers are registered regardless of whether NAT is enabled, because inbound peer endpoint updates must still be processed.