]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
dnstap: if recursion is not available, log queries as AQ instead of CQ
authorEvan Hunt <each@isc.org>
Wed, 27 Mar 2019 16:45:45 +0000 (17:45 +0100)
committerEvan Hunt <each@isc.org>
Fri, 12 Apr 2019 02:12:47 +0000 (19:12 -0700)
(cherry picked from commit 1f578cdb1252575f097a83a831bdfb59d346ef09)
(cherry picked from commit f6c3b135222b5207d5bca4522dc938bf4d2e742e)

bin/named/client.c
bin/tests/system/dnstap/tests.sh

index d425df27f0de6476e2294ccb4e63d21b7a9191b7..d482da7121450c13903f68ea757bfffc40296aa2 100644 (file)
@@ -2825,8 +2825,9 @@ 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" :
@@ -2852,10 +2853,11 @@ 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(view, dtmsgtype, &client->peeraddr,
                            &client->destsockaddr, TCP_CLIENT(client), NULL,
index b09284c7666527a422faa860ac6234374e3e1bfc..3e3aaa918d84251e98436be6a41e25581ca93d80 100644 (file)
@@ -131,16 +131,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
@@ -165,16 +165,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