#include "dnsdist-dnsparser.hh"
#include "dnsdist-actions-factory.hh"
-TEST_CASE("Actions/RCodeAction", "[actions]") {
+TEST_CASE("Actions/RCodeAction", "[actions]")
+{
InternalQueryState ids;
PacketBuffer data;
GenericDNSPacketWriter<PacketBuffer> pwQ(data, DNSName("dnsdist.test.powerdns.com"), QType::A, QClass::IN, 0);
DNSQuestion dq(ids, data); // NOLINT
std::string ruleresult;
- BENCHMARK("set-nxd") {
+ BENCHMARK("set-nxd")
+ {
return (*action)(&dq, &ruleresult);
};
rconfig.setAA = true;
action = dnsdist::actions::getRCodeAction(RCode::NXDomain, rconfig);
- BENCHMARK("set-nxd-and-AA") {
+ BENCHMARK("set-nxd-and-AA")
+ {
return (*action)(&dq, &ruleresult);
};
}
#include "dnsdist-dnsparser.hh"
-TEST_CASE("dnsdist-dnsparser") {
+TEST_CASE("dnsdist-dnsparser")
+{
const DNSName target("powerdns.com.");
const DNSName newTarget("dnsdist.org.");
const DNSName notTheTarget("not-powerdns.com.");
pw.getHeader()->id = htons(42);
pw.commit();
- BENCHMARK("changeNameInDNSPacket") {
+ BENCHMARK("changeNameInDNSPacket")
+ {
dnsdist::changeNameInDNSPacket(query, target, newTarget);
};
}
#include "dnsdist-opentelemetry.hh"
#include "protozero-trace.hh"
-TEST_CASE("OpenTelemetry-base") {
- BENCHMARK("pdns::trace::dnsdist::Tracer::getTracer") {
+TEST_CASE("OpenTelemetry-base")
+{
+ BENCHMARK("pdns::trace::dnsdist::Tracer::getTracer")
+ {
return pdns::trace::dnsdist::Tracer::getTracer();
};
auto tracer = pdns::trace::dnsdist::Tracer::getTracer();
auto spanID = pdns::trace::SpanID::getRandomSpanID();
- BENCHMARK("pdns::trace::dnsdist::Tracer::getCloser") {
+ BENCHMARK("pdns::trace::dnsdist::Tracer::getCloser")
+ {
return tracer->getCloser(spanID);
};
- BENCHMARK("pdns::trace::dnsdist::Tracer::openSpan") {
+ BENCHMARK("pdns::trace::dnsdist::Tracer::openSpan")
+ {
return tracer->openSpan("foo");
};
}
-TEST_CASE("OpenTelemetry-spaninfo") {
+TEST_CASE("OpenTelemetry-spaninfo")
+{
auto tracer = pdns::trace::dnsdist::Tracer::getTracer();
// Ensures span attributes are actually stored
tracer->activate();
auto stringvalue = pdns::trace::AnyValue{"hello"};
auto intvalue = pdns::trace::AnyValue{43854};
- BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-string one span") {
+ BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-string one span")
+ {
tracer->setSpanAttribute(rootSpanID, "key", stringvalue);
};
- BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-int one span") {
+ BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-int one span")
+ {
tracer->setSpanAttribute(rootSpanID, "key", intvalue);
};
auto spanID = rootSpanID;
- for (auto i=0; i < 40; i++) {
+ for (auto i = 0; i < 40; i++) {
spanID = tracer->openSpan("fooSpan" + std::to_string(i), spanID).getSpanID();
}
- BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-string 42 spans, first") {
+ BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-string 42 spans, first")
+ {
tracer->setSpanAttribute(rootSpanID, "key", stringvalue);
};
- BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-int 42 spans, first") {
+ BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-int 42 spans, first")
+ {
tracer->setSpanAttribute(rootSpanID, "key", intvalue);
};
- BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-string 42 spans, last") {
+ BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-string 42 spans, last")
+ {
tracer->setSpanAttribute(spanID, "key", stringvalue);
};
- BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-int 42 spans, last") {
+ BENCHMARK("dnsdist::trace::Tracer::setSpanAttribute-int 42 spans, last")
+ {
tracer->setSpanAttribute(spanID, "key", intvalue);
};
-
}
-TEST_CASE("OpenTelemetry-getLastSpanID") {
+TEST_CASE("OpenTelemetry-getLastSpanID")
+{
auto tracer = pdns::trace::dnsdist::Tracer::getTracer();
pdns::trace::dnsdist::Tracer::Closer closer;
- for (auto i=0; i < 40; i++) {
+ for (auto i = 0; i < 40; i++) {
closer = tracer->openSpan("foo" + std::to_string(i));
}
- BENCHMARK("getLastSpanID") {
+ BENCHMARK("getLastSpanID")
+ {
return tracer->getLastSpanID();
};
- BENCHMARK("getRootSpanID") {
+ BENCHMARK("getRootSpanID")
+ {
return tracer->getRootSpanID();
};
- BENCHMARK("getLastSpanIDForName-first") {
+ BENCHMARK("getLastSpanIDForName-first")
+ {
return tracer->getLastSpanIDForName("foo0");
};
- BENCHMARK("getLastSpanIDForName-middle") {
+ BENCHMARK("getLastSpanIDForName-middle")
+ {
return tracer->getLastSpanIDForName("foo20");
};
- BENCHMARK("getLastSpanIDForName-does-not-exist") {
+ BENCHMARK("getLastSpanIDForName-does-not-exist")
+ {
return tracer->getLastSpanIDForName("doesnotexist");
};
}
-TEST_CASE("OpenTelemetry-getTracesData") {
+TEST_CASE("OpenTelemetry-getTracesData")
+{
auto tracer = pdns::trace::dnsdist::Tracer::getTracer();
- BENCHMARK("empty Tracer") {
+ BENCHMARK("empty Tracer")
+ {
return tracer->getTracesData();
};
- for (auto i=0; i < 40; i++) {
+ for (auto i = 0; i < 40; i++) {
tracer->openSpan("foo" + std::to_string(i));
}
- BENCHMARK("Tracer with 41 pre-activation spans") {
+ BENCHMARK("Tracer with 41 pre-activation spans")
+ {
return tracer->getTracesData();
};
tracer = pdns::trace::dnsdist::Tracer::getTracer();
tracer->activate();
- for (auto i=0; i < 40; i++) {
+ for (auto i = 0; i < 40; i++) {
tracer->openSpan("foo" + std::to_string(i));
}
- BENCHMARK("Tracer with 41 post-activation spans") {
+ BENCHMARK("Tracer with 41 post-activation spans")
+ {
return tracer->getTracesData();
};
tracer = pdns::trace::dnsdist::Tracer::getTracer();
- for (auto i=0; i < 40; i++) {
+ for (auto i = 0; i < 40; i++) {
tracer->openSpan("foo" + std::to_string(i));
}
tracer->activate();
- for (auto i=0; i < 40; i++) {
+ for (auto i = 0; i < 40; i++) {
tracer->openSpan("foo" + std::to_string(i));
}
- BENCHMARK("Tracer with 41 pre-activation spans and 41 post-activation spans") {
+ BENCHMARK("Tracer with 41 pre-activation spans and 41 post-activation spans")
+ {
return tracer->getTracesData();
};
}
Rings g_rings;
string g_outputBuffer;
-void handleResponseSent([[maybe_unused]] const InternalQueryState& ids, [[maybe_unused]]double udiff, [[maybe_unused]]const ComboAddress& client, [[maybe_unused]]const ComboAddress& backend, [[maybe_unused]]unsigned int size, [[maybe_unused]]const dnsheader& cleartextDH, [[maybe_unused]]dnsdist::Protocol protocol, [[maybe_unused]]bool fromBackend)
+void handleResponseSent([[maybe_unused]] const InternalQueryState& ids, [[maybe_unused]] double udiff, [[maybe_unused]] const ComboAddress& client, [[maybe_unused]] const ComboAddress& backend, [[maybe_unused]] unsigned int size, [[maybe_unused]] const dnsheader& cleartextDH, [[maybe_unused]] dnsdist::Protocol protocol, [[maybe_unused]] bool fromBackend)
{
}
-void handleResponseSent([[maybe_unused]] const DNSName& qname, [[maybe_unused]]const QType& qtype, [[maybe_unused]]double udiff, [[maybe_unused]]const ComboAddress& client, [[maybe_unused]]const ComboAddress& backend, [[maybe_unused]]unsigned int size, [[maybe_unused]]const dnsheader& cleartextDH, [[maybe_unused]]dnsdist::Protocol outgoingProtocol, [[maybe_unused]]dnsdist::Protocol incomingProtocol, [[maybe_unused]]bool fromBackend)
+void handleResponseSent([[maybe_unused]] const DNSName& qname, [[maybe_unused]] const QType& qtype, [[maybe_unused]] double udiff, [[maybe_unused]] const ComboAddress& client, [[maybe_unused]] const ComboAddress& backend, [[maybe_unused]] unsigned int size, [[maybe_unused]] const dnsheader& cleartextDH, [[maybe_unused]] dnsdist::Protocol outgoingProtocol, [[maybe_unused]] dnsdist::Protocol incomingProtocol, [[maybe_unused]] bool fromBackend)
{
}
}
void doExitNicely(int exitCode);
-void doExitNicely([[maybe_unused]] int exitCode){
+void doExitNicely([[maybe_unused]] int exitCode) {
};
-ProcessQueryResult processQuery([[maybe_unused]] DNSQuestion& dnsQuestion, [[maybe_unused]]std::shared_ptr<DownstreamState>& selectedBackend)
+ProcessQueryResult processQuery([[maybe_unused]] DNSQuestion& dnsQuestion, [[maybe_unused]] std::shared_ptr<DownstreamState>& selectedBackend)
{
return ProcessQueryResult::Drop;
};
-bool processRulesResult([[maybe_unused]] const DNSAction::Action& action, [[maybe_unused]]DNSQuestion& dnsQuestion, [[maybe_unused]]std::string& ruleresult, [[maybe_unused]]bool& drop)
+bool processRulesResult([[maybe_unused]] const DNSAction::Action& action, [[maybe_unused]] DNSQuestion& dnsQuestion, [[maybe_unused]] std::string& ruleresult, [[maybe_unused]] bool& drop)
{
return false;
}
-ProcessQueryResult processQueryAfterRules([[maybe_unused]] DNSQuestion& dnsQuestion, [[maybe_unused]]std::shared_ptr<DownstreamState>& outgoingBackend)
+ProcessQueryResult processQueryAfterRules([[maybe_unused]] DNSQuestion& dnsQuestion, [[maybe_unused]] std::shared_ptr<DownstreamState>& outgoingBackend)
{
return ProcessQueryResult::Drop;
}
-bool processResponseAfterRules([[maybe_unused]] PacketBuffer& response, [[maybe_unused]]DNSResponse& dnsResponse, [[maybe_unused]]bool muted)
+bool processResponseAfterRules([[maybe_unused]] PacketBuffer& response, [[maybe_unused]] DNSResponse& dnsResponse, [[maybe_unused]] bool muted)
{
return false;
}
-bool applyRulesToResponse([[maybe_unused]] const std::vector<dnsdist::rules::ResponseRuleAction>& respRuleActions, [[maybe_unused]]DNSResponse& dnsResponse)
+bool applyRulesToResponse([[maybe_unused]] const std::vector<dnsdist::rules::ResponseRuleAction>& respRuleActions, [[maybe_unused]] DNSResponse& dnsResponse)
{
(void)respRuleActions;
(void)dnsResponse;
return true;
}
-bool handleTimeoutResponseRules([[maybe_unused]] const std::vector<dnsdist::rules::ResponseRuleAction>& rules, [[maybe_unused]]InternalQueryState& ids, [[maybe_unused]]const std::shared_ptr<DownstreamState>& d_ds, [[maybe_unused]]const std::shared_ptr<TCPQuerySender>& sender)
+bool handleTimeoutResponseRules([[maybe_unused]] const std::vector<dnsdist::rules::ResponseRuleAction>& rules, [[maybe_unused]] InternalQueryState& ids, [[maybe_unused]] const std::shared_ptr<DownstreamState>& d_ds, [[maybe_unused]] const std::shared_ptr<TCPQuerySender>& sender)
{
return false;
}
-void handleServerStateChange([[maybe_unused]] const string& nameWithAddr, [[maybe_unused]]bool newResult)
+void handleServerStateChange([[maybe_unused]] const string& nameWithAddr, [[maybe_unused]] bool newResult)
{
}
-bool sendUDPResponse([[maybe_unused]] int origFD, [[maybe_unused]]const PacketBuffer& response, [[maybe_unused]]const int delayMsec, [[maybe_unused]]const ComboAddress& origDest, [[maybe_unused]]const ComboAddress& origRemote)
+bool sendUDPResponse([[maybe_unused]] int origFD, [[maybe_unused]] const PacketBuffer& response, [[maybe_unused]] const int delayMsec, [[maybe_unused]] const ComboAddress& origDest, [[maybe_unused]] const ComboAddress& origRemote)
{
return false;
}
-bool assignOutgoingUDPQueryToBackend([[maybe_unused]] std::shared_ptr<DownstreamState>& downstream, [[maybe_unused]]uint16_t queryID, [[maybe_unused]]DNSQuestion& dnsQuestion, [[maybe_unused]]PacketBuffer& query, [[maybe_unused]]bool actuallySend)
+bool assignOutgoingUDPQueryToBackend([[maybe_unused]] std::shared_ptr<DownstreamState>& downstream, [[maybe_unused]] uint16_t queryID, [[maybe_unused]] DNSQuestion& dnsQuestion, [[maybe_unused]] PacketBuffer& query, [[maybe_unused]] bool actuallySend)
{
return true;
}
{
}
-bool checkQueryHeaders([[maybe_unused]] const struct dnsheader& dnsHeader, [[maybe_unused]] ClientState& clientState) {
+bool checkQueryHeaders([[maybe_unused]] const struct dnsheader& dnsHeader, [[maybe_unused]] ClientState& clientState)
+{
return true;
}
-bool checkDNSCryptQuery([[maybe_unused]] const ClientState& clientState, [[maybe_unused]] PacketBuffer& query, [[maybe_unused]] std::unique_ptr<DNSCryptQuery>& dnsCryptQuery, [[maybe_unused]] time_t now, [[maybe_unused]] bool tcp) {
+bool checkDNSCryptQuery([[maybe_unused]] const ClientState& clientState, [[maybe_unused]] PacketBuffer& query, [[maybe_unused]] std::unique_ptr<DNSCryptQuery>& dnsCryptQuery, [[maybe_unused]] time_t now, [[maybe_unused]] bool tcp)
+{
return false;
}
-bool responseContentMatches([[maybe_unused]] const PacketBuffer& response, [[maybe_unused]]const DNSName& qname, [[maybe_unused]]const uint16_t qtype, [[maybe_unused]]const uint16_t qclass, [[maybe_unused]]const std::shared_ptr<DownstreamState>& remote, [[maybe_unused]]bool allowEmptyResponse) {
+bool responseContentMatches([[maybe_unused]] const PacketBuffer& response, [[maybe_unused]] const DNSName& qname, [[maybe_unused]] const uint16_t qtype, [[maybe_unused]] const uint16_t qclass, [[maybe_unused]] const std::shared_ptr<DownstreamState>& remote, [[maybe_unused]] bool allowEmptyResponse)
+{
return false;
}
-
class UDPTCPCrossQuerySender : public TCPQuerySender
{
public:
}
};
-
class UDPCrossProtocolQuery : public CrossProtocolQuery
{
public: