Versions in this module Expand all Collapse all v2 v2.0.15 Nov 8, 2023 v2.0.13 Nov 8, 2023 Changes in this version + type Allocation struct + Protocol Protocol + RelayAddr net.Addr + RelaySocket net.PacketConn + TurnSocket net.PacketConn + func NewAllocation(turnSocket net.PacketConn, fiveTuple *FiveTuple, log logging.LeveledLogger) *Allocation + func (a *Allocation) AddChannelBind(c *ChannelBind, lifetime time.Duration) error + func (a *Allocation) AddPermission(p *Permission) + func (a *Allocation) Close() error + func (a *Allocation) GetChannelByAddr(addr net.Addr) *ChannelBind + func (a *Allocation) GetChannelByNumber(number proto.ChannelNumber) *ChannelBind + func (a *Allocation) GetPermission(addr net.Addr) *Permission + func (a *Allocation) Refresh(lifetime time.Duration) + func (a *Allocation) RemoveChannelBind(number proto.ChannelNumber) bool + func (a *Allocation) RemovePermission(addr net.Addr) + type ChannelBind struct + Number proto.ChannelNumber + Peer net.Addr + func NewChannelBind(number proto.ChannelNumber, peer net.Addr, log logging.LeveledLogger) *ChannelBind + type FiveTuple struct + DstAddr net.Addr + SrcAddr net.Addr + func (f *FiveTuple) Equal(b *FiveTuple) bool + func (f *FiveTuple) Fingerprint() string + type Manager struct + func NewManager(config ManagerConfig) (*Manager, error) + func (m *Manager) Close() error + func (m *Manager) CreateAllocation(fiveTuple *FiveTuple, turnSocket net.PacketConn, requestedPort int, ...) (*Allocation, error) + func (m *Manager) CreateReservation(reservationToken string, port int) + func (m *Manager) DeleteAllocation(fiveTuple *FiveTuple) + func (m *Manager) GetAllocation(fiveTuple *FiveTuple) *Allocation + func (m *Manager) GetRandomEvenPort() (int, error) + func (m *Manager) GetReservation(reservationToken string) (int, bool) + type ManagerConfig struct + AllocateConn func(network string, requestedPort int) (net.Conn, net.Addr, error) + AllocatePacketConn func(network string, requestedPort int) (net.PacketConn, net.Addr, error) + LeveledLogger logging.LeveledLogger + type Permission struct + Addr net.Addr + func NewPermission(addr net.Addr, log logging.LeveledLogger) *Permission + type Protocol uint8 + const TCP + const UDP