if(sendmsg(dc->d_socket, &msgh, 0) < 0 && g_logCommonErrors)
g_log<<Logger::Warning<<"Sending UDP reply to client "<<dc->getRemote()<<" failed with: "<<strerror(errno)<<endl;
+ if(variableAnswer || sr.wasVariable()) {
+ g_stats.variableResponses++;
+ }
if(!SyncRes::s_nopacketcache && !variableAnswer && !sr.wasVariable() ) {
t_packetCache->insertResponsePacket(dc->d_tag, dc->d_qhash, std::move(dc->d_query), dc->d_mdp.d_qname, dc->d_mdp.d_qtype, dc->d_mdp.d_qclass,
string((const char*)&*packet.begin(), packet.size()),
addGetStat("edns-ping-matches", &g_stats.ednsPingMatches);
addGetStat("edns-ping-mismatches", &g_stats.ednsPingMismatches);
addGetStat("dnssec-queries", &g_stats.dnssecQueries);
+
addGetStat("dnssec-authentic-data-queries", &g_stats.dnssecAuthenticDataQueries);
addGetStat("dnssec-check-disabled-queries", &g_stats.dnssecCheckDisabledQueries);
+ addGetStat("variable-responses", &g_stats.variableResponses);
+
addGetStat("noping-outqueries", &g_stats.noPingOutQueries);
addGetStat("noedns-outqueries", &g_stats.noEdnsOutQueries);
std::atomic<uint64_t> dnssecQueries;
std::atomic<uint64_t> dnssecAuthenticDataQueries;
std::atomic<uint64_t> dnssecCheckDisabledQueries;
+ std::atomic<uint64_t> variableResponses;
unsigned int maxMThreadStackUsage;
std::atomic<uint64_t> dnssecValidations; // should be the sum of all dnssecResult* stats
std::map<vState, std::atomic<uint64_t> > dnssecResults;