boost::optional<Netmask> subnet;
uint16_t cachedResponseSize = dq.size;
uint32_t allowExpired = ss ? 0 : g_staleCacheEntriesTTL;
-
- if (dq.useECS && ((ss && ss->useECS) || (!ss && serverPool->getECS()))) {
- if (packetCache && !dq.skipCache) {
- dnssecOK = (getEDNSZ(dq) & EDNS_HEADER_FLAG_DO);
- }
- boost::optional<Netmask> subnet;
+ if (packetCache && !dq.skipCache) {
+ dnssecOK = (getEDNSZ(dq) & EDNS_HEADER_FLAG_DO);
+ }
+
+ if (dq.useECS && ((ss && ss->useECS) || (!ss && serverPool->getECS()))) {
if (packetCache && !dq.skipCache && packetCache->get(dq, consumed, dh->id, query, &cachedResponseSize, &cacheKeyNoECS, subnet, dnssecOK, allowExpired)) {
goto sendIt;
}
}
sendit:;
- if(g_useIncomingECS && haveEDNS && !sr.wasVariable()) {
+ if(g_useIncomingECS && dc->d_ecsFound && !sr.wasVariable()) {
// cerr<<"Stuffing in a 0 scope because answer is static"<<endl;
EDNSSubnetOpts eo;
eo.source = dc->d_ednssubnet.source;
ComboAddress sa;
- memset(&sa, 0, sizeof(sa));
+ sa.reset();
sa.sin4.sin_family = eo.source.getNetwork().sin4.sin_family;
eo.scope = Netmask(sa, 0);
g_log<<Logger::Warning<<"Sending UDP reply to client "<<dc->getRemote()<<" failed with: "<<strerror(errno)<<endl;
if(variableAnswer || sr.wasVariable()) {
- g_stats.variableResponses++;
+ 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,