#include "net/dns/dns_names_util.h"
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
#include "base/check.h"
#include "base/containers/span.h"
#include "base/containers/span_reader.h"
#include "net/base/ip_address.h"
#include "net/base/url_util.h"
#include "net/dns/public/dns_protocol.h"
#include "url/third_party/mozilla/url_parse.h"
#include "url/url_canon.h"
#include "url/url_canon_stdstring.h"
namespace net::dns_names_util {
bool IsValidDnsName(std::string_view dotted_form_name) { … }
bool IsValidDnsRecordName(std::string_view dotted_form_name) { … }
std::optional<std::vector<uint8_t>> DottedNameToNetwork(
std::string_view dotted_form_name,
bool require_valid_internet_hostname) { … }
std::optional<std::string> NetworkToDottedName(base::span<const uint8_t> span,
bool require_complete) { … }
std::optional<std::string> NetworkToDottedName(
base::SpanReader<const uint8_t>& reader,
bool require_complete) { … }
bool ReadU8LengthPrefixed(base::SpanReader<const uint8_t>& reader,
base::span<const uint8_t>* out) { … }
bool ReadU16LengthPrefixed(base::SpanReader<const uint8_t>& reader,
base::span<const uint8_t>* out) { … }
std::string UrlCanonicalizeNameIfAble(std::string_view name) { … }
}