summaryrefslogtreecommitdiff
path: root/chromium/net/dns/record_rdata.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-09-29 16:16:15 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-11-09 10:04:06 +0000
commita95a7417ad456115a1ef2da4bb8320531c0821f1 (patch)
treeedcd59279e486d2fd4a8f88a7ed025bcf925c6e6 /chromium/net/dns/record_rdata.cc
parent33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (diff)
downloadqtwebengine-chromium-a95a7417ad456115a1ef2da4bb8320531c0821f1.tar.gz
BASELINE: Update Chromium to 106.0.5249.126
Change-Id: Ib0bb21c437a7d1686e21c33f2d329f2ac425b7ab Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/438936 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/net/dns/record_rdata.cc')
-rw-r--r--chromium/net/dns/record_rdata.cc90
1 files changed, 7 insertions, 83 deletions
diff --git a/chromium/net/dns/record_rdata.cc b/chromium/net/dns/record_rdata.cc
index 8e969a16d70..a136a10ff36 100644
--- a/chromium/net/dns/record_rdata.cc
+++ b/chromium/net/dns/record_rdata.cc
@@ -65,7 +65,7 @@ std::unique_ptr<SrvRecordRdata> SrvRecordRdata::Create(
if (!HasValidSize(data, kType))
return nullptr;
- std::unique_ptr<SrvRecordRdata> rdata(new SrvRecordRdata);
+ auto rdata = base::WrapUnique(new SrvRecordRdata());
auto reader = base::BigEndianReader::FromStringPiece(data);
// 2 bytes for priority, 2 bytes for weight, 2 bytes for port.
@@ -104,7 +104,7 @@ std::unique_ptr<ARecordRdata> ARecordRdata::Create(
if (!HasValidSize(data, kType))
return nullptr;
- std::unique_ptr<ARecordRdata> rdata(new ARecordRdata);
+ auto rdata = base::WrapUnique(new ARecordRdata());
rdata->address_ =
IPAddress(reinterpret_cast<const uint8_t*>(data.data()), data.length());
return rdata;
@@ -131,7 +131,7 @@ std::unique_ptr<AAAARecordRdata> AAAARecordRdata::Create(
if (!HasValidSize(data, kType))
return nullptr;
- std::unique_ptr<AAAARecordRdata> rdata(new AAAARecordRdata);
+ auto rdata = base::WrapUnique(new AAAARecordRdata());
rdata->address_ =
IPAddress(reinterpret_cast<const uint8_t*>(data.data()), data.length());
return rdata;
@@ -155,7 +155,7 @@ CnameRecordRdata::~CnameRecordRdata() = default;
std::unique_ptr<CnameRecordRdata> CnameRecordRdata::Create(
const base::StringPiece& data,
const DnsRecordParser& parser) {
- std::unique_ptr<CnameRecordRdata> rdata(new CnameRecordRdata);
+ auto rdata = base::WrapUnique(new CnameRecordRdata());
if (!parser.ReadName(data.begin(), &rdata->cname_))
return nullptr;
@@ -182,7 +182,7 @@ PtrRecordRdata::~PtrRecordRdata() = default;
std::unique_ptr<PtrRecordRdata> PtrRecordRdata::Create(
const base::StringPiece& data,
const DnsRecordParser& parser) {
- std::unique_ptr<PtrRecordRdata> rdata(new PtrRecordRdata);
+ auto rdata = base::WrapUnique(new PtrRecordRdata());
if (!parser.ReadName(data.begin(), &rdata->ptrdomain_))
return nullptr;
@@ -208,7 +208,7 @@ TxtRecordRdata::~TxtRecordRdata() = default;
std::unique_ptr<TxtRecordRdata> TxtRecordRdata::Create(
const base::StringPiece& data,
const DnsRecordParser& parser) {
- std::unique_ptr<TxtRecordRdata> rdata(new TxtRecordRdata);
+ auto rdata = base::WrapUnique(new TxtRecordRdata());
for (size_t i = 0; i < data.size(); ) {
uint8_t length = data[i];
@@ -243,7 +243,7 @@ NsecRecordRdata::~NsecRecordRdata() = default;
std::unique_ptr<NsecRecordRdata> NsecRecordRdata::Create(
const base::StringPiece& data,
const DnsRecordParser& parser) {
- std::unique_ptr<NsecRecordRdata> rdata(new NsecRecordRdata);
+ auto rdata = base::WrapUnique(new NsecRecordRdata());
// Read the "next domain". This part for the NSEC record format is
// ignored for mDNS, since it has no semantic meaning.
@@ -302,82 +302,6 @@ bool NsecRecordRdata::GetBit(unsigned i) const {
return (bitmap_[byte_num] & (1 << bit_num)) != 0;
}
-OptRecordRdata::OptRecordRdata() = default;
-
-OptRecordRdata::OptRecordRdata(OptRecordRdata&& other) = default;
-
-OptRecordRdata::~OptRecordRdata() = default;
-
-OptRecordRdata& OptRecordRdata::operator=(OptRecordRdata&& other) = default;
-
-// static
-std::unique_ptr<OptRecordRdata> OptRecordRdata::Create(
- const base::StringPiece& data,
- const DnsRecordParser& parser) {
- std::unique_ptr<OptRecordRdata> rdata(new OptRecordRdata);
- rdata->buf_.assign(data.begin(), data.end());
-
- auto reader = base::BigEndianReader::FromStringPiece(data);
- while (reader.remaining() > 0) {
- uint16_t opt_code, opt_data_size;
- base::StringPiece opt_data;
-
- if (!(reader.ReadU16(&opt_code) && reader.ReadU16(&opt_data_size) &&
- reader.ReadPiece(&opt_data, opt_data_size))) {
- return nullptr;
- }
- rdata->opts_.push_back(Opt(opt_code, opt_data));
- }
-
- return rdata;
-}
-
-uint16_t OptRecordRdata::Type() const {
- return OptRecordRdata::kType;
-}
-
-bool OptRecordRdata::IsEqual(const RecordRdata* other) const {
- if (other->Type() != Type())
- return false;
- const OptRecordRdata* opt_other = static_cast<const OptRecordRdata*>(other);
- return opt_other->opts_ == opts_;
-}
-
-void OptRecordRdata::AddOpt(const Opt& opt) {
- base::StringPiece opt_data = opt.data();
-
- // Resize buffer to accommodate new OPT.
- const size_t orig_rdata_size = buf_.size();
- buf_.resize(orig_rdata_size + Opt::kHeaderSize + opt_data.size());
-
- // Start writing from the end of the existing rdata.
- base::BigEndianWriter writer(buf_.data() + orig_rdata_size, buf_.size());
- bool success = writer.WriteU16(opt.code()) &&
- writer.WriteU16(opt_data.size()) &&
- writer.WriteBytes(opt_data.data(), opt_data.size());
- DCHECK(success);
-
- opts_.push_back(opt);
-}
-
-void OptRecordRdata::AddOpts(const OptRecordRdata& other) {
- buf_.insert(buf_.end(), other.buf_.begin(), other.buf_.end());
- opts_.insert(opts_.end(), other.opts_.begin(), other.opts_.end());
-}
-
-bool OptRecordRdata::ContainsOptCode(uint16_t opt_code) const {
- return std::any_of(
- opts_.begin(), opts_.end(),
- [=](const OptRecordRdata::Opt& opt) { return opt.code() == opt_code; });
-}
-
-OptRecordRdata::Opt::Opt(uint16_t code, base::StringPiece data)
- : code_(code), data_(data) {}
-
-bool OptRecordRdata::Opt::operator==(const OptRecordRdata::Opt& other) const {
- return code_ == other.code_ && data_ == other.data_;
-}
-
IntegrityRecordRdata::IntegrityRecordRdata(Nonce nonce)
: nonce_(std::move(nonce)), digest_(Hash(nonce_)), is_intact_(true) {}