Documentation ¶
Index ¶
- Constants
- type DataPacket
- type ExchangePacket
- type Packet
- type PacketConstructor
- func (p *PacketConstructor) Buffer() []byte
- func (c *PacketConstructor) MakeDataPacket(data []byte, ip net.IP) DataPacket
- func (c *PacketConstructor) MakeDataPacketSize(size int) DataPacket
- func (c *PacketConstructor) MakeExchangePacket(data []byte, ip net.IP) ExchangePacket
- func (c *PacketConstructor) MakePingPacket(id uuid.UUID, ip net.IP) PingPacket
- func (c *PacketConstructor) MakePongAesPacket(id uuid.UUID, data []byte, hmac []byte) PongAesPacket
- func (c *PacketConstructor) MakePongPacket(id uuid.UUID) PongPacket
- func (c *PacketConstructor) MakeRelayControlPingPacket(id uuid.UUID, token []byte) RelayControlPingPacket
- func (c *PacketConstructor) MakeRelayControlPongPacket(id uuid.UUID) RelayControlPongPacket
- func (c *PacketConstructor) MakeRelayDataPacket(data []byte, ip net.IP, destIP net.IP) RelayPacket
- func (c *PacketConstructor) MakeRelayDataPacketSize(size int, destIP net.IP) RelayPacket
- func (c *PacketConstructor) MakeRelayExchangePacket(data []byte, ip net.IP, destIP net.IP) RelayPacket
- func (c *PacketConstructor) MakeRelayPingPacket(id uuid.UUID, ip net.IP, destIP net.IP) RelayPacket
- func (c *PacketConstructor) MakeRelayPongAesPacket(id uuid.UUID, data []byte, hmac []byte, destIP net.IP) RelayPacket
- func (c *PacketConstructor) MakeRelayPongPacket(id uuid.UUID, destIP net.IP) RelayPacket
- func (p *PacketConstructor) ReadTCP(read io.Reader) error
- func (p *PacketConstructor) ReadUDP(read netconn.UDPConn) (*net.UDPAddr, error)
- func (p *PacketConstructor) SetSize(size uint16)
- func (t *PacketConstructor) Size() uint16
- func (p *PacketConstructor) ToPacket() Packet
- func (p *PacketConstructor) ToTCP() TcpPacket
- func (p *PacketConstructor) ToUDP() UdpPacket
- type PacketType
- type PingPacket
- type PongAesPacket
- type PongPacket
- type RelayControlPingPacket
- type RelayControlPongPacket
- type RelayPacket
- type RelayPacketConstructor
- type TcpPacket
- type UdpPacket
Constants ¶
View Source
const ( MTU = 1420 MaxContentSize = 1500 )
View Source
const ( TCPHeaderLength = 2 PacketTypeLength = 1 PacketIPv4Length = 4 PacketIdLength = 16 PacketPongAesDataLength = 32 PacketPongAesHmacLength = 64 PacketRelayControlPingTokenLength = 32 PingPacketLength = PacketTypeLength + PacketIPv4Length + PacketIdLength PongPacketLength = PacketTypeLength + PacketIdLength PongAesPacketLength = PacketTypeLength + PacketIdLength + PacketPongAesDataLength + PacketPongAesHmacLength ExchangePacketHeaderLength = PacketTypeLength + PacketIPv4Length DataPacketHeaderLength = PacketTypeLength + PacketIPv4Length RelayPacketHeaderLength = PacketTypeLength + PacketIPv4Length RelayPingPacketLength = RelayPacketHeaderLength + PingPacketLength RelayPongPacketLength = RelayPacketHeaderLength + PongPacketLength RelayPongAesPacketLength = RelayPacketHeaderLength + PongAesPacketLength RelayExchangePacketHeaderLength = RelayPacketHeaderLength + ExchangePacketHeaderLength RelayDataPacketHeaderLength = RelayPacketHeaderLength + DataPacketHeaderLength RelayControlPingPacketLength = PacketTypeLength + PacketIdLength + PacketRelayControlPingTokenLength RelayControlPongPacketLength = PacketTypeLength + PacketIdLength )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DataPacket ¶
type DataPacket Packet
func (DataPacket) Data ¶
func (p DataPacket) Data() []byte
func (DataPacket) IP ¶
func (p DataPacket) IP() net.IP
func (DataPacket) SetData ¶
func (p DataPacket) SetData(data []byte)
func (DataPacket) SetIP ¶
func (p DataPacket) SetIP(ip net.IP)
func (DataPacket) Valid ¶
func (p DataPacket) Valid() bool
type ExchangePacket ¶
type ExchangePacket Packet
func (ExchangePacket) Data ¶
func (p ExchangePacket) Data() []byte
func (ExchangePacket) IP ¶
func (p ExchangePacket) IP() net.IP
func (ExchangePacket) SetData ¶
func (p ExchangePacket) SetData(data []byte)
func (ExchangePacket) SetIP ¶
func (p ExchangePacket) SetIP(ip net.IP)
func (ExchangePacket) Valid ¶
func (p ExchangePacket) Valid() bool
type Packet ¶
type Packet []byte
func (Packet) SetType ¶
func (p Packet) SetType(t PacketType)
func (Packet) Type ¶
func (p Packet) Type() PacketType
type PacketConstructor ¶
type PacketConstructor struct {
// contains filtered or unexported fields
}
func NewConstructor ¶
func NewConstructor() *PacketConstructor
func NewConstructorWithBuffer ¶
func NewConstructorWithBuffer(buf []byte) *PacketConstructor
func (*PacketConstructor) Buffer ¶
func (p *PacketConstructor) Buffer() []byte
func (*PacketConstructor) MakeDataPacket ¶
func (c *PacketConstructor) MakeDataPacket(data []byte, ip net.IP) DataPacket
func (*PacketConstructor) MakeDataPacketSize ¶
func (c *PacketConstructor) MakeDataPacketSize(size int) DataPacket
func (*PacketConstructor) MakeExchangePacket ¶
func (c *PacketConstructor) MakeExchangePacket(data []byte, ip net.IP) ExchangePacket
func (*PacketConstructor) MakePingPacket ¶
func (c *PacketConstructor) MakePingPacket(id uuid.UUID, ip net.IP) PingPacket
func (*PacketConstructor) MakePongAesPacket ¶
func (c *PacketConstructor) MakePongAesPacket(id uuid.UUID, data []byte, hmac []byte) PongAesPacket
func (*PacketConstructor) MakePongPacket ¶
func (c *PacketConstructor) MakePongPacket(id uuid.UUID) PongPacket
func (*PacketConstructor) MakeRelayControlPingPacket ¶
func (c *PacketConstructor) MakeRelayControlPingPacket(id uuid.UUID, token []byte) RelayControlPingPacket
func (*PacketConstructor) MakeRelayControlPongPacket ¶
func (c *PacketConstructor) MakeRelayControlPongPacket(id uuid.UUID) RelayControlPongPacket
func (*PacketConstructor) MakeRelayDataPacket ¶
func (c *PacketConstructor) MakeRelayDataPacket(data []byte, ip net.IP, destIP net.IP) RelayPacket
func (*PacketConstructor) MakeRelayDataPacketSize ¶
func (c *PacketConstructor) MakeRelayDataPacketSize(size int, destIP net.IP) RelayPacket
func (*PacketConstructor) MakeRelayExchangePacket ¶
func (c *PacketConstructor) MakeRelayExchangePacket(data []byte, ip net.IP, destIP net.IP) RelayPacket
func (*PacketConstructor) MakeRelayPingPacket ¶
func (c *PacketConstructor) MakeRelayPingPacket(id uuid.UUID, ip net.IP, destIP net.IP) RelayPacket
func (*PacketConstructor) MakeRelayPongAesPacket ¶
func (c *PacketConstructor) MakeRelayPongAesPacket(id uuid.UUID, data []byte, hmac []byte, destIP net.IP) RelayPacket
func (*PacketConstructor) MakeRelayPongPacket ¶
func (c *PacketConstructor) MakeRelayPongPacket(id uuid.UUID, destIP net.IP) RelayPacket
func (*PacketConstructor) SetSize ¶
func (p *PacketConstructor) SetSize(size uint16)
func (*PacketConstructor) Size ¶
func (t *PacketConstructor) Size() uint16
func (*PacketConstructor) ToPacket ¶
func (p *PacketConstructor) ToPacket() Packet
func (*PacketConstructor) ToTCP ¶
func (p *PacketConstructor) ToTCP() TcpPacket
func (*PacketConstructor) ToUDP ¶
func (p *PacketConstructor) ToUDP() UdpPacket
type PacketType ¶
type PacketType byte
const ( PacketTypeInvalid PacketType = iota PacketTypeData PacketTypePing PacketTypePong PacketTypePongAes PacketTypeExchange PacketTypeRelay // used to register nodes on relay servers PacketTypeRelayControlPing PacketTypeRelayControlPong )
type PingPacket ¶
type PingPacket Packet
func (PingPacket) ID ¶
func (p PingPacket) ID() uuid.UUID
func (PingPacket) IP ¶
func (p PingPacket) IP() net.IP
func (PingPacket) SetID ¶
func (p PingPacket) SetID(id uuid.UUID)
func (PingPacket) SetIP ¶
func (p PingPacket) SetIP(ip net.IP)
func (PingPacket) Valid ¶
func (p PingPacket) Valid() bool
type PongAesPacket ¶
type PongAesPacket Packet
func (PongAesPacket) Data ¶
func (p PongAesPacket) Data() []byte
func (PongAesPacket) Hmac ¶
func (p PongAesPacket) Hmac() []byte
func (PongAesPacket) ID ¶
func (p PongAesPacket) ID() uuid.UUID
func (PongAesPacket) SetData ¶
func (p PongAesPacket) SetData(data []byte)
func (PongAesPacket) SetHmac ¶
func (p PongAesPacket) SetHmac(hmac []byte)
func (PongAesPacket) SetID ¶
func (p PongAesPacket) SetID(id uuid.UUID)
func (PongAesPacket) Valid ¶
func (p PongAesPacket) Valid() bool
type PongPacket ¶
type PongPacket Packet
func (PongPacket) ID ¶
func (p PongPacket) ID() uuid.UUID
func (PongPacket) SetID ¶
func (p PongPacket) SetID(id uuid.UUID)
func (PongPacket) Valid ¶
func (p PongPacket) Valid() bool
type RelayControlPingPacket ¶
type RelayControlPingPacket Packet
func (RelayControlPingPacket) ID ¶
func (p RelayControlPingPacket) ID() uuid.UUID
func (RelayControlPingPacket) SetID ¶
func (p RelayControlPingPacket) SetID(id uuid.UUID)
func (RelayControlPingPacket) SetToken ¶
func (p RelayControlPingPacket) SetToken(token []byte)
func (RelayControlPingPacket) Token ¶
func (p RelayControlPingPacket) Token() []byte
func (RelayControlPingPacket) Valid ¶
func (p RelayControlPingPacket) Valid() bool
type RelayControlPongPacket ¶
type RelayControlPongPacket Packet
func (RelayControlPongPacket) ID ¶
func (p RelayControlPongPacket) ID() uuid.UUID
func (RelayControlPongPacket) SetID ¶
func (p RelayControlPongPacket) SetID(id uuid.UUID)
func (RelayControlPongPacket) Valid ¶
func (p RelayControlPongPacket) Valid() bool
type RelayPacket ¶
type RelayPacket Packet
func (RelayPacket) DestIP ¶
func (p RelayPacket) DestIP() net.IP
func (RelayPacket) SetDestIP ¶
func (p RelayPacket) SetDestIP(ip net.IP)
func (RelayPacket) SetType ¶
func (p RelayPacket) SetType(t PacketType)
func (RelayPacket) ToPacket ¶
func (p RelayPacket) ToPacket() Packet
func (RelayPacket) Type ¶
func (p RelayPacket) Type() PacketType
func (RelayPacket) Valid ¶
func (p RelayPacket) Valid() bool
type RelayPacketConstructor ¶
type RelayPacketConstructor struct { Relay *PacketConstructor Standard *PacketConstructor }
func NewRelayConstructor ¶
func NewRelayConstructor() *RelayPacketConstructor
Click to show internal directories.
Click to hide internal directories.