From: Evan Hunt Date: Sun, 16 Feb 2014 04:57:00 +0000 (-0800) Subject: [master] tcp and udp stats counters X-Git-Tag: v9.10.0b1~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31f6244cc25ab0f8937edc26dbb26ba4f6a01f19;p=thirdparty%2Fbind9.git [master] tcp and udp stats counters 3739. [func] Added per-zone stats counters to track TCP and UDP queries. [RT #35375] --- diff --git a/CHANGES b/CHANGES index febc5d0ff2c..1f92e05e97d 100644 --- 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 diff --git a/bin/named/client.c b/bin/named/client.c index a6f0a64e296..1597ebdb4ed 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -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. diff --git a/bin/named/include/named/server.h b/bin/named/include/named/server.h index fd6f723a203..6c968fcdc23 100644 --- a/bin/named/include/named/server.h +++ b/bin/named/include/named/server.h @@ -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 diff --git a/bin/named/query.c b/bin/named/query.c index 605ed313583..ce4bce34fdf 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -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: diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c index d2d483bc013..04c7282d141 100644 --- a/bin/named/statschannel.c +++ b/bin/named/statschannel.c @@ -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 */ diff --git a/lib/dns/zone.c b/lib/dns/zone.c index c0315c2e721..8c41d8ea81b 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -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);