packet

package
v0.0.0-...-6af2dc9 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

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) Copy

func (p Packet) Copy() Packet

func (Packet) CopyTo

func (p Packet) CopyTo(n []byte) Packet

func (Packet) SetType

func (p Packet) SetType(t PacketType)

func (Packet) Type

func (p Packet) Type() PacketType

func (Packet) Valid

func (p Packet) Valid() bool

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) ReadTCP

func (p *PacketConstructor) ReadTCP(read io.Reader) error

func (*PacketConstructor) ReadUDP

func (p *PacketConstructor) ReadUDP(read netconn.UDPConn) (*net.UDPAddr, error)

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 (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 (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

type TcpPacket

type TcpPacket []byte

func (TcpPacket) Size

func (t TcpPacket) Size() uint16

func (TcpPacket) ToPacket

func (t TcpPacket) ToPacket() Packet

type UdpPacket

type UdpPacket []byte

func (UdpPacket) ToPacket

func (t UdpPacket) ToPacket() Packet

Jump to

Keyboard shortcuts

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