DNS protocol constants (TYPE, CLASS, RCODE, OPCODE) with forward and reverse
lookup tables, and an RDATA codec registry. Each codec provides decode and
encode functions for a specific DNS record type, operating on dns.wire
readers and writers.
| Name | Signature |
|---|---|
register_codec | register_codec(type_code, codec) |
get_codec | get_codec(type_code) -> codec |
format_ipv6 | format_ipv6(groups) -> address |
parse_ipv6 | parse_ipv6(address) -> groups, err |
register_codec(
type_code,codec)
Register an RDATA codec for a given type code
get_codec(
type_code) ->codec
Look up the RDATA codec for a given type code
format_ipv6(
groups) ->address
Format 8 u16 groups into RFC5952 canonical IPv6 string
Formats an array of 8 16-bit groups into RFC5952 canonical form:
Lowercase hex, no leading zeros
Longest run of consecutive zero groups replaced with ::
:: only used for runs of 2 or more zero groups
Leftmost longest run wins on tie
parse_ipv6(
address) ->groups,err
Parse an IPv6 address string into 8 u16 groups
Parses an IPv6 address with :: expansion. Returns an array of 8 u16
values, or nil and an error message.