dnstap: if recursion is not available, log queries as AQ instead of CQ

This commit is contained in:
Evan Hunt 2019-03-27 17:45:45 +01:00
parent 9b1304be36
commit 1f578cdb12
2 changed files with 17 additions and 15 deletions

View file

@ -145,16 +145,16 @@ status=`expr $status + $ret`
echo_i "checking AUTH_QUERY message counts"
ret=0
[ $aq1 -eq 2 ] || {
echo_i "ns1 $aq1 exepcted 2"
[ $aq1 -eq 3 ] || {
echo_i "ns1 $aq1 exepcted 3"
ret=1
}
[ $aq2 -eq 1 ] || {
echo_i "ns2 $aq2 expected 1"
[ $aq2 -eq 2 ] || {
echo_i "ns2 $aq2 expected 2"
ret=1
}
[ $aq3 -eq 0 ] || {
echo_i "ns3 $aq3 expected 0"
[ $aq3 -eq 1 ] || {
echo_i "ns3 $aq3 expected 1"
ret=1
}
if [ $ret != 0 ]; then echo_i "failed"; fi
@ -179,16 +179,16 @@ status=`expr $status + $ret`
echo_i "checking CLIENT_QUERY message counts"
ret=0
[ $cq1 -eq 1 ] || {
echo_i "ns1 $cq1 expected 1"
[ $cq1 -eq 0 ] || {
echo_i "ns1 $cq1 expected 0"
ret=1
}
[ $cq2 -eq 1 ] || {
echo_i "ns2 $cq2 expected 1"
[ $cq2 -eq 0 ] || {
echo_i "ns2 $cq2 expected 0"
ret=1
}
[ $cq3 -eq 2 ] || {
echo_i "ns3 $cq3 expected 2"
[ $cq3 -eq 1 ] || {
echo_i "ns3 $cq3 expected 1"
ret=1
}
if [ $ret != 0 ]; then echo_i "failed"; fi

View file

@ -2787,8 +2787,9 @@ ns__client_request(isc_task_t *task, isc_event_t *event) {
true) == ISC_R_SUCCESS)
ra = true;
if (ra == true)
if (ra == true) {
client->attributes |= NS_CLIENTATTR_RA;
}
ns_client_log(client, DNS_LOGCATEGORY_SECURITY, NS_LOGMODULE_CLIENT,
ISC_LOG_DEBUG(3), ra ? "recursion available" :
@ -2815,10 +2816,11 @@ ns__client_request(isc_task_t *task, isc_event_t *event) {
case dns_opcode_query:
CTRACE("query");
#ifdef HAVE_DNSTAP
if ((client->message->flags & DNS_MESSAGEFLAG_RD) != 0)
if (ra && (client->message->flags & DNS_MESSAGEFLAG_RD) != 0) {
dtmsgtype = DNS_DTTYPE_CQ;
else
} else {
dtmsgtype = DNS_DTTYPE_AQ;
}
dns_dt_send(client->view, dtmsgtype, &client->peeraddr,
&client->destsockaddr, TCP_CLIENT(client), NULL,