summaryrefslogtreecommitdiff
path: root/bin/named/statschannel.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/named/statschannel.c')
-rw-r--r--bin/named/statschannel.c67
1 files changed, 43 insertions, 24 deletions
diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c
index 8ec08d7b1959..4bfd52176a9a 100644
--- a/bin/named/statschannel.c
+++ b/bin/named/statschannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2014 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008-2015 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -14,8 +14,6 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: statschannel.c,v 1.28 2011/03/12 04:59:46 tbox Exp $ */
-
/*! \file */
#include <config.h>
@@ -123,6 +121,8 @@ set_desc(int counter, int maxcounter, const char *fdesc, const char **fdescs,
const char *xdesc, const char **xdescs)
{
REQUIRE(counter < maxcounter);
+if (fdescs[counter] != NULL)
+fprintf(stderr, "fdescs[%d] == %s\n", counter, fdescs[counter]);
REQUIRE(fdescs[counter] == NULL);
#ifdef HAVE_LIBXML2
REQUIRE(xdescs[counter] == NULL);
@@ -168,7 +168,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");
@@ -207,14 +207,32 @@ init_desc(void) {
SET_NSSTATDESC(updatebadprereq,
"updates rejected due to prerequisite failure",
"UpdateBadPrereq");
- SET_NSSTATDESC(rpz_rewrites, "response policy zone rewrites",
- "RPZRewrites");
-#ifdef USE_RRL
+ SET_NSSTATDESC(recursclients, "recursing clients",
+ "RecursClients");
+ SET_NSSTATDESC(dns64, "queries answered by DNS64", "DNS64");
SET_NSSTATDESC(ratedropped, "responses dropped for rate limits",
"RateDropped");
SET_NSSTATDESC(rateslipped, "responses truncated for rate limits",
"RateSlipped");
-#endif /* USE_RRL */
+ SET_NSSTATDESC(rpz_rewrites, "response policy zone rewrites",
+ "RPZRewrites");
+ SET_NSSTATDESC(udp, "UDP queries received", "QryUDP");
+ SET_NSSTATDESC(tcp, "TCP queries received", "QryTCP");
+ SET_NSSTATDESC(nsidopt, "NSID option received", "NSIDOpt");
+ SET_NSSTATDESC(expireopt, "Expire option received", "ExpireOpt");
+ SET_NSSTATDESC(otheropt, "Other EDNS option received", "OtherOpt");
+ SET_NSSTATDESC(sitopt, "source identity token option received",
+ "SitOpt");
+ SET_NSSTATDESC(sitnew, "new source identity token requested",
+ "SitNew");
+ SET_NSSTATDESC(sitbadsize, "source identity token - bad size",
+ "SitBadSize");
+ SET_NSSTATDESC(sitbadtime, "source identity token - bad time",
+ "SitBadTime");
+ SET_NSSTATDESC(sitnomatch, "source identity token - no match",
+ "SitNoMatch");
+ SET_NSSTATDESC(sitmatch, "source identity token - match", "SitMatch");
+ SET_NSSTATDESC(ecsopt, "EDNS client subnet option recieved", "ECSOpt");
INSIST(i == dns_nsstatscounter_max);
/* Initialize resolver statistics */
@@ -285,6 +303,10 @@ init_desc(void) {
SET_RESSTATDESC(queryrtt5, "queries with RTT > "
DNS_RESOLVER_QRYRTTCLASS4STR "ms",
"QryRTT" DNS_RESOLVER_QRYRTTCLASS4STR "+");
+ SET_RESSTATDESC(zonequota, "spilled due to zone quota", "ZoneQuota");
+ SET_RESSTATDESC(serverquota, "spilled due to server quota",
+ "ServerQuota");
+
INSIST(i == dns_resstatscounter_max);
/* Initialize zone statistics */
@@ -495,7 +517,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg,
const char *category, const char **desc, int ncounters,
int *indices, isc_uint64_t *values, int options)
{
- int i, index;
+ int i, idx;
isc_uint64_t value;
stats_dumparg_t dumparg;
FILE *fp;
@@ -517,8 +539,8 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg,
isc_stats_dump(stats, generalstat_dump, &dumparg, options);
for (i = 0; i < ncounters; i++) {
- index = indices[i];
- value = values[index];
+ idx = indices[i];
+ value = values[idx];
if (value == 0 && (options & ISC_STATSDUMP_VERBOSE) == 0)
continue;
@@ -527,7 +549,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg,
case statsformat_file:
fp = arg;
fprintf(fp, "%20" ISC_PRINT_QUADFORMAT "u %s\n",
- value, desc[index]);
+ value, desc[idx]);
break;
case statsformat_xml:
#ifdef HAVE_LIBXML2
@@ -545,7 +567,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg,
"name"));
TRY0(xmlTextWriterWriteString(writer,
ISC_XMLCHAR
- desc[index]));
+ desc[i]));
TRY0(xmlTextWriterEndElement(writer));
/* </name> */
@@ -569,7 +591,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg,
ISC_XMLCHAR
"name",
ISC_XMLCHAR
- desc[index]));
+ desc[i]));
TRY0(xmlTextWriterWriteFormatString(writer,
"%" ISC_PRINT_QUADFORMAT "u", value));
TRY0(xmlTextWriterEndElement(writer));
@@ -587,7 +609,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg,
"name"));
TRY0(xmlTextWriterWriteString(writer,
ISC_XMLCHAR
- desc[index]));
+ desc[idx]));
TRY0(xmlTextWriterEndElement(writer)); /* name */
TRY0(xmlTextWriterStartElement(writer,
@@ -596,7 +618,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg,
} else {
TRY0(xmlTextWriterStartElement(writer,
ISC_XMLCHAR
- desc[index]));
+ desc[idx]));
}
TRY0(xmlTextWriterWriteFormatString(writer,
"%"
@@ -893,7 +915,6 @@ static isc_result_t
zone_xmlrender(dns_zone_t *zone, void *arg) {
isc_result_t result;
char buf[1024 + 32]; /* sufficiently large for zone name and class */
- char *zone_name_only = NULL;
dns_rdataclass_t rdclass;
isc_uint32_t serial;
xmlTextWriterPtr writer = arg;
@@ -912,13 +933,11 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
dumparg.arg = writer;
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "zone"));
- dns_zone_name(zone, buf, sizeof(buf));
- zone_name_only = strtok(buf, "/");
- if(zone_name_only == NULL)
- zone_name_only = buf;
+ dns_zone_nameonly(zone, buf, sizeof(buf));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "name",
- ISC_XMLCHAR zone_name_only));
+ ISC_XMLCHAR buf));
+
rdclass = dns_zone_getclass(zone);
dns_rdataclass_format(rdclass, buf, sizeof(buf));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "rdataclass",
@@ -990,7 +1009,7 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "zone"));
- dns_zone_name(zone, buf, sizeof(buf));
+ dns_zone_nameonly(zone, buf, sizeof(buf));
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "name"));
TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR buf));
TRY0(xmlTextWriterEndElement(writer));
@@ -1058,7 +1077,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
ISC_XMLCHAR "type=\"text/xsl\" href=\"/bind9.ver3.xsl\""));
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "statistics"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "version",
- ISC_XMLCHAR "3.3"));
+ ISC_XMLCHAR "3.6"));
/* Set common fields for statistics dump */
dumparg.type = statsformat_xml;