Documentation ¶
Overview ¶
Package pack provides utility functions to (un)pack raw data from and to the "wire"
Index ¶
- Constants
- Variables
- func PackCharacterString(characters string, buf []byte, offset int) (int, error)
- func PackDomainName(name string, buf []byte, offset int, comp compression.Map) (int, error)
- func PackEDNSOptions(options []edns.Option, buf []byte, offset int) (int, error)
- func PackIPAddress(addr netip.Addr, buf []byte, offset int) (int, error)
- func PackUint16(data uint16, buf []byte, offset int) (int, error)
- func PackUint32(data uint32, buf []byte, offset int) (int, error)
- func PackUint8(data uint8, buf []byte, offset int) (int, error)
- func UnpackCharacterString(data []byte, offset int) (string, int, error)
- func UnpackDomainName(data []byte, offset int) (string, int, error)
- func UnpackEDNSOptions(data []byte, offset int, rdlen uint16) ([]edns.Option, int, error)
- func UnpackIPv4Address(data []byte, offset int) (netip.Addr, int, error)
- func UnpackIPv6Address(data []byte, offset int) (netip.Addr, int, error)
- func UnpackUint16(data []byte, offset int) (uint16, int, error)
- func UnpackUint32(data []byte, offset int) (uint32, int, error)
- func UnpackUint64(data []byte, offset int) (uint64, int, error)
- func UnpackUint8(data []byte, offset int) (uint8, int, error)
- type OverflowError
Constants ¶
const ( ErrOverflowUnpackUint64 = OverflowError("offset overflow unpacking uint64") ErrOverflowUnpackUint32 = OverflowError("offset overflow unpacking uint32") ErrOverflowUnpackUint16 = OverflowError("offset overflow unpacking uint16") ErrOverflowUnpackUint8 = OverflowError("offset overflow unpacking uint8") ErrOverflowPackUint32 = OverflowError("offset overflow packing uint32") ErrOverflowPackUint16 = OverflowError("offset overflow packing uint16") ErrOverflowPackUint8 = OverflowError("offset overflow packing uint8") ErrOverflowUnpackIPv4 = OverflowError("offset overflow unpacking IPv4 address") ErrOverflowUnpackIPv6 = OverflowError("offset overflow unpacking IPv6 address") ErrOverflowPackIPv4 = OverflowError("offset overflow packing IPv4 address") ErrOverfloPpackIPv6 = OverflowError("offset overflow packing IPv6 address") ErrOverflowUnpackString = OverflowError("offset overflow unpacking character string") ErrOverflowUnpackName = OverflowError("offset overflow unpacking domain name") )
Variables ¶
var ( ErrCharacterStringTooLong = errors.New("pack: character string too long") ErrInvalidName = errors.New("pack: invalid name") )
Functions ¶
func PackCharacterString ¶
See https://datatracker.ietf.org/doc/html/rfc1035#section-3.3 <character-string>
func PackDomainName ¶
PackDomainName packs a name into buf and returns the new offset.
func PackEDNSOptions ¶
PackEDNSOptions packs all EDNS options into buf and returns the new offset
func PackIPAddress ¶
PackIPAddress packs a IP address (v4 or v6) into buf and returns the new offset
func PackUint16 ¶
PackUint16 packs a uint16 (two octets) into buf and returns the new offset
func PackUint32 ¶
PackUint32 ppacks a uint32 (four octets) into buff and returns the new offset
func UnpackCharacterString ¶
UnpackCharacterString unpacks a character string. See https://datatracker.ietf.org/doc/html/rfc1035#section-3.3 <character-string>
func UnpackDomainName ¶
UnpackDomainName unoacks a domain name in a DNS question or in a RR header
func UnpackEDNSOptions ¶
func UnpackIPv4Address ¶
UnpackIPv4Address unpacks a IPv4 address and returns the new offset
func UnpackIPv6Address ¶
UnpackIPv6Address unpacks a IPv6 address and returns the new offset
func UnpackUint16 ¶
UnpackUint16 unpacks a uint16 from data at offset and returns the new offset
func UnpackUint32 ¶
UnpackUint32 unpacks a uint32 from data at offset and returns the new offset
func UnpackUint64 ¶
UnpackUint64 unpacks a uint64 from data at offset and returns the new offset
Types ¶
type OverflowError ¶
type OverflowError string
func (OverflowError) Error ¶
func (e OverflowError) Error() string