11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
22PROMEKI_NAMESPACE_BEGIN
69inline constexpr size_t MaxNameWireBytes = 255;
72inline constexpr size_t MaxNameTextBytes = 1024;
75inline constexpr int MaxNamePointerHops = 16;
83String dnsEscapeLabel(
const String &raw);
92String dnsUnescapeLabel(
const String &escaped);
107List<String> dnsSplitName(
const String &name);
116String dnsJoinName(
const List<String> &rawLabels);
128struct DnsNameDecodeResult {
132 size_t nextOffset = 0;
154Result<DnsNameDecodeResult> decodeName(
const uint8_t *data,
size_t len,
size_t offset);
169Error skipName(
const uint8_t *data,
size_t len,
size_t &offset);
180using DnsNameCompressionMap = Map<String, uint16_t>;
209Error encodeName(
const String &name, List<uint8_t> &out,
210 DnsNameCompressionMap *dict =
nullptr);
224String dnsCanonicalName(
const String &name);