S.declare("udp-queries","Number of UDP queries received");
S.declare("udp-do-queries","Number of UDP queries received with DO bit");
S.declare("udp-answers","Number of answers sent out over UDP");
+ S.declare("udp-answers-bytes","Total size of answers sent out over UDP");
S.declare("udp4-answers","Number of IPv4 answers sent out over UDP");
S.declare("udp4-queries","Number of IPv4 UDP queries received");
return !!p;
}
-
void sendout(const DNSDistributor::AnswerData &AD)
{
if(!AD.A)
static unsigned int &numanswered=*S.getPointer("udp-answers");
static unsigned int &numanswered4=*S.getPointer("udp4-answers");
static unsigned int &numanswered6=*S.getPointer("udp6-answers");
+ static unsigned int &bytesanswered=*S.getPointer("udp-answers-bytes");
- g_rs.submitResponse(p->qtype.getCode(), buffer.length(), true);
+ g_rs.submitResponse(p->qtype.getCode(), buffer.length(), true);
struct msghdr msgh;
struct cmsghdr *cmsg;
/* Count responses (total/v4/v6) and byte counts */
numanswered++;
+ bytesanswered+=buffer.length();
if(p->d_remote.sin4.sin_family==AF_INET)
numanswered4++;
else