diff --git a/bin/tests/system/dnstap/tests.sh b/bin/tests/system/dnstap/tests.sh index 28e67f7c99..1396995026 100644 --- a/bin/tests/system/dnstap/tests.sh +++ b/bin/tests/system/dnstap/tests.sh @@ -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 diff --git a/lib/ns/client.c b/lib/ns/client.c index 4a43fb6d32..0df4f64f71 100644 --- a/lib/ns/client.c +++ b/lib/ns/client.c @@ -2789,8 +2789,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" : @@ -2817,10 +2818,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,