]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] tcp and udp stats counters
authorEvan Hunt <each@isc.org>
Sun, 16 Feb 2014 04:57:00 +0000 (20:57 -0800)
committerEvan Hunt <each@isc.org>
Sun, 16 Feb 2014 04:57:00 +0000 (20:57 -0800)
3739. [func] Added per-zone stats counters to track TCP and
UDP queries. [RT #35375]

CHANGES
bin/named/client.c
bin/named/include/named/server.h
bin/named/query.c
bin/named/statschannel.c
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index febc5d0ff2c5072b08f1f90dc321ff1eaac29e09..1f92e05e97d0251af961e6ca9af4483d56e5364a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3739.  [func]          Added per-zone stats counters to track TCP and
+                       UDP queries. [RT #35375]
+
 3738.  [bug]           --enable-openssl-hash failed to build. [RT #35343]
 
 3737.  [bug]           'rndc retransfer' could trigger a assertion failure
index a6f0a64e296b6b593ae74e0f8c001fadf40110bc..1597ebdb4ed605f01400942111ae8bd211e5efee 100644 (file)
@@ -1728,7 +1728,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
        }
        if (TCP_CLIENT(client))
                isc_stats_increment(ns_g_server->nsstats,
-                                   dns_nsstatscounter_tcp);
+                                   dns_nsstatscounter_requesttcp);
 
        /*
         * It's a request.  Parse it.
index fd6f723a203c8e5afc19c6a185fc428257f8a4e7..6c968fcdc2302f69dceb57dd672c6e6e4f0a0ef4 100644 (file)
@@ -132,7 +132,7 @@ enum {
        dns_nsstatscounter_tsigin = 4,
        dns_nsstatscounter_sig0in = 5,
        dns_nsstatscounter_invalidsig = 6,
-       dns_nsstatscounter_tcp = 7,
+       dns_nsstatscounter_requesttcp = 7,
 
        dns_nsstatscounter_authrej = 8,
        dns_nsstatscounter_recurserej = 9,
@@ -176,7 +176,10 @@ enum {
 
        dns_nsstatscounter_rpz_rewrites = 40,
 
-       dns_nsstatscounter_max = 41
+       dns_nsstatscounter_udp = 41,
+       dns_nsstatscounter_tcp = 42,
+
+       dns_nsstatscounter_max = 43
 };
 
 void
index 605ed31358342443764a3978443413cf0c895832..ce4bce34fdf4051b62b891009a4434b124796b55 100644 (file)
@@ -6316,6 +6316,12 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
                        dns_db_attach(db, &client->query.authdb);
                }
                client->query.authdbset = ISC_TRUE;
+
+               /* Track TCP vs UDP stats per zone */
+               if ((client->attributes & NS_CLIENTATTR_TCP) != 0)
+                       inc_stats(client, dns_nsstatscounter_tcp);
+               else
+                       inc_stats(client, dns_nsstatscounter_udp);
        }
 
  db_find:
index d2d483bc0133f205c5379d235dd5254b8c78d9c7..04c7282d141990d1a95b6819e4e94dc75fb2fffa 100644 (file)
@@ -170,7 +170,7 @@ init_desc(void) {
        SET_NSSTATDESC(sig0in, "requests with SIG(0) received", "ReqSIG0");
        SET_NSSTATDESC(invalidsig, "requests with invalid signature",
                       "ReqBadSIG");
-       SET_NSSTATDESC(tcp, "TCP requests received", "ReqTCP");
+       SET_NSSTATDESC(requesttcp, "TCP requests received", "ReqTCP");
        SET_NSSTATDESC(authrej, "auth queries rejected", "AuthQryRej");
        SET_NSSTATDESC(recurserej, "recursive queries rejected", "RecQryRej");
        SET_NSSTATDESC(xfrrej, "transfer requests rejected", "XfrRej");
@@ -218,6 +218,8 @@ init_desc(void) {
                       "RateSlipped");
        SET_NSSTATDESC(rpz_rewrites, "response policy zone rewrites",
                       "RPZRewrites");
+       SET_NSSTATDESC(udp, "UDP queries received", "QryUDP");
+       SET_NSSTATDESC(tcp, "TCP queries received", "QryTCP");
        INSIST(i == dns_nsstatscounter_max);
 
        /* Initialize resolver statistics */
index c0315c2e7210a83b17f302f3616029943e506b36..8c41d8ea81b1a051b718e37dfd7b5d2dfd1316de 100644 (file)
@@ -1088,7 +1088,7 @@ zone_free(dns_zone_t *zone) {
                isc_stats_detach(&zone->stats);
        if (zone->requeststats != NULL)
                isc_stats_detach(&zone->requeststats);
-       if(zone->rcvquerystats != NULL )
+       if (zone->rcvquerystats != NULL)
                dns_stats_detach(&zone->rcvquerystats);
        if (zone->db != NULL)
                zone_detachdb(zone);