if (packet.size() > ((sizeof(dnsheader) + qnameWireLength))) {
if (!d_optionsToSkip.empty()) {
/* skip EDNS options if any */
- result = PacketCache::hashAfterQname(pdns_string_view(reinterpret_cast<const char*>(packet.data()), packet.size()), result, sizeof(dnsheader) + qnameWireLength, d_optionsToSkip);
+ result = PacketCache::hashAfterQname(std::string_view(reinterpret_cast<const char*>(packet.data()), packet.size()), result, sizeof(dnsheader) + qnameWireLength, d_optionsToSkip);
}
else {
result = burtle(&packet.at(sizeof(dnsheader) + qnameWireLength), packet.size() - (sizeof(dnsheader) + qnameWireLength), result);
if (ntohs(dh->qdcount) == 0)
return ENOENT;
- PacketReader pr(pdns_string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
+ PacketReader pr(std::string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
size_t idx = 0;
DNSName rrname;
optionAdded = false;
ednsAdded = true;
- PacketReader pr(pdns_string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
+ PacketReader pr(std::string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
size_t idx = 0;
DNSName rrname;
if (ntohs(dh->arcount) == 0)
return ENOENT;
- PacketReader pr(pdns_string_view(reinterpret_cast<const char*>(packet.data()), packet.size()));
+ PacketReader pr(std::string_view(reinterpret_cast<const char*>(packet.data()), packet.size()));
size_t idx = 0;
DNSName rrname;
if (ntohs(dh->qdcount) == 0)
return ENOENT;
- PacketReader pr(pdns_string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
+ PacketReader pr(std::string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
size_t idx = 0;
DNSName rrname;
{
std::map<DNSName, std::vector<ComboAddress>> hints;
const struct dnsheader* dh = reinterpret_cast<const struct dnsheader*>(answer.data());
- PacketReader pr(pdns_string_view(reinterpret_cast<const char*>(answer.data()), answer.size()));
+ PacketReader pr(std::string_view(reinterpret_cast<const char*>(answer.data()), answer.size()));
uint16_t qdcount = ntohs(dh->qdcount);
uint16_t ancount = ntohs(dh->ancount);
uint16_t nscount = ntohs(dh->nscount);
d_records.reserve(numRecords);
try {
- PacketReader reader(pdns_string_view(reinterpret_cast<const char*>(packet.data()), packet.size()));
+ PacketReader reader(std::string_view(reinterpret_cast<const char*>(packet.data()), packet.size()));
for (uint16_t n = 0; n < ntohs(d_header.qdcount); ++n) {
reader.xfrName(d_qname);
return false;
}
- PacketReader pr(pdns_string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
+ PacketReader pr(std::string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size()));
dnsheader dh;
memcpy(&dh, initialPacket.data(), sizeof(dh));
}
/* can only be called from the main DoH thread */
-static bool getHTTPHeaderValue(const h2o_req_t* req, const std::string& headerName, pdns_string_view& value)
+static bool getHTTPHeaderValue(const h2o_req_t* req, const std::string& headerName, std::string_view& value)
{
bool found = false;
/* early versions of boost::string_ref didn't have the ability to compare to string */
- pdns_string_view headerNameView(headerName);
+ std::string_view headerNameView(headerName);
for (size_t i = 0; i < req->headers.size; ++i) {
- if (pdns_string_view(req->headers.entries[i].name->base, req->headers.entries[i].name->len) == headerNameView) {
- value = pdns_string_view(req->headers.entries[i].value.base, req->headers.entries[i].value.len);
+ if (std::string_view(req->headers.entries[i].name->base, req->headers.entries[i].name->len) == headerNameView) {
+ value = std::string_view(req->headers.entries[i].value.base, req->headers.entries[i].value.len);
/* don't stop there, we might have more than one header with the same name, and we want the last one */
found = true;
}
static void processForwardedForHeader(const h2o_req_t* req, ComboAddress& remote)
{
static const std::string headerName = "x-forwarded-for";
- pdns_string_view value;
+ std::string_view value;
if (getHTTPHeaderValue(req, headerName, value)) {
try {
auto pos = value.rfind(',');
- if (pos != pdns_string_view::npos) {
+ if (pos != std::string_view::npos) {
++pos;
for (; pos < value.size() && value[pos] == ' '; ++pos)
{
}
}
- // would be nice to be able to use a pdns_string_view there,
+ // would be nice to be able to use a std::string_view there,
// but regex (called by matches() internally) requires a null-terminated string
string path(req->path.base, req->path.len);
/* the responses map can be updated at runtime, so we need to take a copy of
return rr;
}
-void MOADNSParser::init(bool query, const pdns_string_view& packet)
+void MOADNSParser::init(bool query, const std::string_view& packet)
{
if (packet.size() < sizeof(dnsheader))
throw MOADNSException("Packet shorter than minimal header");
if (ntohs(dh->qdcount) == 0)
return ENOENT;
- auto packetView = pdns_string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size());
+ auto packetView = std::string_view(reinterpret_cast<const char*>(initialPacket.data()), initialPacket.size());
PacketReader pr(packetView);
class PacketReader
{
public:
- PacketReader(const pdns_string_view& content, uint16_t initialPos=sizeof(dnsheader))
+ PacketReader(const std::string_view& content, uint16_t initialPos=sizeof(dnsheader))
: d_pos(initialPos), d_startrecordpos(initialPos), d_content(content)
{
if(content.size() > std::numeric_limits<uint16_t>::max())
uint16_t d_startrecordpos; // needed for getBlob later on
uint16_t d_recordlen; // ditto
uint16_t not_used; // Aligns the whole class on 8-byte boundaries
- const pdns_string_view d_content;
+ const std::string_view d_content;
};
struct DNSRecord;
//! Parse from a pointer and length
MOADNSParser(bool query, const char *packet, unsigned int len) : d_tsigPos(0)
{
- init(query, pdns_string_view(packet, len));
+ init(query, std::string_view(packet, len));
}
DNSName d_qname;
bool hasEDNS() const;
private:
- void init(bool query, const pdns_string_view& packet);
+ void init(bool query, const std::string_view& packet);
uint16_t d_tsigPos;
};
using std::string;
using std::unique_ptr;
using std::vector;
-
-using pdns_string_view = std::string_view;
- EDNS Cookie options, if any ;
- Any given option code present in optionsToSkip
*/
- static uint32_t hashAfterQname(const pdns_string_view& packet, uint32_t currentHash, size_t pos, const std::unordered_set<uint16_t>& optionsToSkip = {EDNSOptionCode::COOKIE})
+ static uint32_t hashAfterQname(const std::string_view& packet, uint32_t currentHash, size_t pos, const std::unordered_set<uint16_t>& optionsToSkip = {EDNSOptionCode::COOKIE})
{
const size_t packetSize = packet.size();
assert(packetSize >= sizeof(dnsheader));
return;
}
- PacketReader pr(pdns_string_view(packet, len));
+ PacketReader pr(std::string_view(packet, len));
size_t idx = 0;
DNSName rrname;
#include "ednsextendederror.hh"
-static bool getEDNSExtendedErrorOptFromStringView(const pdns_string_view& option, EDNSExtendedError& eee)
+static bool getEDNSExtendedErrorOptFromStringView(const std::string_view& option, EDNSExtendedError& eee)
{
if (option.size() < sizeof(uint16_t)) {
return false;
bool getEDNSExtendedErrorOptFromString(const string& option, EDNSExtendedError& eee)
{
- return getEDNSExtendedErrorOptFromStringView(pdns_string_view(option), eee);
+ return getEDNSExtendedErrorOptFromStringView(std::string_view(option), eee);
}
bool getEDNSExtendedErrorOptFromString(const char* option, unsigned int len, EDNSExtendedError& eee)
{
- return getEDNSExtendedErrorOptFromStringView(pdns_string_view(option, len), eee);
+ return getEDNSExtendedErrorOptFromStringView(std::string_view(option, len), eee);
}
string makeEDNSExtendedErrorOptString(const EDNSExtendedError& eee)