Documentation
¶
Index ¶
- type Clock
- type ControlMessage
- type ControlType
- type DirectBatchConn
- type DiscoveryKey
- type Manager
- func (m *Manager) CurrentPeerRecvQueueDepth() int
- func (m *Manager) DirectAddr() (net.Addr, bool)
- func (m *Manager) DirectPacketConn() (net.PacketConn, net.Addr, bool)
- func (m *Manager) DirectPath() (string, bool)
- func (m *Manager) DroppedPeerDatagrams() uint64
- func (m *Manager) HandleDirectPacket(conn net.PacketConn, addr net.Addr, payload []byte) bool
- func (m *Manager) MarkDirectBroken() error
- func (m *Manager) MaxPeerRecvQueueDepth() int
- func (m *Manager) NoteDirectActivity(addr net.Addr)
- func (m *Manager) PathEvents(ctx context.Context) <-chan PathEvent
- func (m *Manager) PathSnapshot() PathSnapshot
- func (m *Manager) PathSnapshots(ctx context.Context) <-chan PathSnapshot
- func (m *Manager) PathState() Path
- func (m *Manager) PeerDatagramConn(ctx context.Context) PeerDatagramConn
- func (m *Manager) RejectedDirectDatagrams() uint64
- func (m *Manager) SeedRemoteCandidates(ctx context.Context, candidates []net.Addr)
- func (m *Manager) Start(ctx context.Context) error
- func (m *Manager) StopDirect()
- func (m *Manager) StopDirectReads()
- func (m *Manager) Updates(ctx context.Context) <-chan Update
- func (m *Manager) Wait()
- type ManagerConfig
- type Path
- type PathCandidateSnapshot
- type PathEvent
- type PathEventReason
- type PathEventSource
- type PathEventType
- type PathSnapshot
- type PeerDatagramConn
- type Portmap
- type Timer
- type Update
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ControlMessage ¶
type ControlMessage struct {
Type ControlType `json:"type"`
Candidates []string `json:"candidates,omitempty"`
}
type ControlType ¶
type ControlType string
const ( ControlCandidates ControlType = "candidates" ControlCallMeMaybe ControlType = "call-me-maybe" )
type DirectBatchConn ¶
type DiscoveryKey ¶ added in v0.10.0
type DiscoveryKey [32]byte
func (DiscoveryKey) IsZero ¶ added in v0.10.0
func (k DiscoveryKey) IsZero() bool
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func NewManager(cfg ManagerConfig) *Manager
func (*Manager) CurrentPeerRecvQueueDepth ¶ added in v0.15.0
func (*Manager) DirectPacketConn ¶ added in v0.15.0
func (*Manager) DirectPath ¶
func (*Manager) DroppedPeerDatagrams ¶
func (*Manager) HandleDirectPacket ¶
func (*Manager) MarkDirectBroken ¶
func (*Manager) MaxPeerRecvQueueDepth ¶
func (*Manager) NoteDirectActivity ¶
func (*Manager) PathEvents ¶ added in v0.16.3
func (*Manager) PathSnapshot ¶ added in v0.16.3
func (m *Manager) PathSnapshot() PathSnapshot
func (*Manager) PathSnapshots ¶ added in v0.16.3
func (m *Manager) PathSnapshots(ctx context.Context) <-chan PathSnapshot
func (*Manager) PeerDatagramConn ¶
func (m *Manager) PeerDatagramConn(ctx context.Context) PeerDatagramConn
func (*Manager) RejectedDirectDatagrams ¶
func (*Manager) SeedRemoteCandidates ¶
func (*Manager) StopDirect ¶
func (m *Manager) StopDirect()
func (*Manager) StopDirectReads ¶
func (m *Manager) StopDirectReads()
type ManagerConfig ¶
type ManagerConfig struct {
RelayConn net.PacketConn
RelaySend func(context.Context, []byte) error
ReceiveRelay func(context.Context) ([]byte, error)
RelayAddr net.Addr
DirectConn net.PacketConn
DirectBatchConn DirectBatchConn
DisableDirectReads bool
HandleSTUNPacket func([]byte, net.Addr)
CandidateSource func(context.Context) []net.Addr
Portmap Portmap
SendControl func(context.Context, ControlMessage) error
ReceiveControl func(context.Context) (ControlMessage, error)
Clock Clock
DiscoveryInterval time.Duration
EndpointRefreshInterval time.Duration
DirectStaleTimeout time.Duration
DiscoveryKey DiscoveryKey
}
type PathCandidateSnapshot ¶ added in v0.16.3
type PathEvent ¶ added in v0.16.3
type PathEvent struct {
At time.Time
Type PathEventType
Reason PathEventReason
Source PathEventSource
Path Path
PreviousPath Path
SelectedAddr net.Addr
PreviousAddr net.Addr
TargetAddr net.Addr
RTT time.Duration
Snapshot PathSnapshot
}
type PathEventReason ¶ added in v0.16.3
type PathEventReason string
const ( PathEventReasonProbeAck PathEventReason = "probe-ack" PathEventReasonDirectBroken PathEventReason = "direct-broken" PathEventReasonDirectStale PathEventReason = "direct-stale" PathEventReasonCandidateLost PathEventReason = "candidate-lost" PathEventReasonStopDirect PathEventReason = "stop-direct" PathEventReasonProbeWriteFailed PathEventReason = "probe-write-failed" )
type PathEventSource ¶ added in v0.16.3
type PathEventSource string
const ( PathEventSourceDirectProbe PathEventSource = "direct-probe" PathEventSourceDiscovery PathEventSource = "discovery" PathEventSourceManual PathEventSource = "manual" PathEventSourceRemoteControl PathEventSource = "remote-control" PathEventSourceSeed PathEventSource = "seed" PathEventSourceStaleCheck PathEventSource = "stale-check" PathEventSourceStopDirect PathEventSource = "stop-direct" )
type PathEventType ¶ added in v0.16.3
type PathEventType string
const ( PathEventCandidatesChanged PathEventType = "candidates-changed" PathEventProbeSent PathEventType = "probe-sent" PathEventProbeFailed PathEventType = "probe-failed" PathEventProbeSucceeded PathEventType = "probe-succeeded" PathEventSelected PathEventType = "selected" PathEventFallback PathEventType = "fallback" PathEventLagged PathEventType = "lagged" )
type PathSnapshot ¶ added in v0.16.3
type PeerDatagramConn ¶
Click to show internal directories.
Click to hide internal directories.