struct cmsghdr *cmsg;
struct iovec iov;
char cbuf[256];
-
+
+ /* Query statistics */
+ if(p->d.aa) {
+ if (p->d.rcode == RCode::NoError)
+ S.ringAccount("noerror-queries",p->qdomain+"/"+p->qtype.getName());
+ else if (p->d.rcode == RCode::NXDomain)
+ S.ringAccount("nxdomain-queries",p->qdomain+"/"+p->qtype.getName());
+ } else {
+ S.ringAccount("unauth-queries",p->qdomain);
+ S.ringAccount("remotes-unauth",p->getRemote());
+ }
+
/* Set up iov and msgh structures. */
memset(&msgh, 0, sizeof(struct msghdr));
iov.iov_base = (void*)buffer.c_str();
rr.auth = 1;
rr.scopeMask = sd.scopeMask;
r->addRecord(rr);
-
+
if(p->d_dnssecOk && d_dk.isSecuredZone(sd.qname))
addNSECX(p, r, target, wildcard, sd.qname, 4);
-
- r->setRcode(RCode::NXDomain);
- S.ringAccount("nxdomain-queries",p->qdomain+"/"+p->qtype.getName());
+
+ r->setRcode(RCode::NXDomain);
}
void PacketHandler::makeNOError(DNSPacket* p, DNSPacket* r, const std::string& target, const std::string& wildcard, SOAData& sd, int mode)
if(p->d_dnssecOk && d_dk.isSecuredZone(sd.qname))
addNSECX(p, r, target, wildcard, sd.qname, mode);
-
- S.ringAccount("noerror-queries",p->qdomain+"/"+p->qtype.getName());
}