]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Print out ancient type stats with '~' prefix.
authorMatthijs Mekking <matthijs@isc.org>
Mon, 5 Aug 2019 14:34:28 +0000 (16:34 +0200)
committerMatthijs Mekking <matthijs@isc.org>
Mon, 12 Aug 2019 08:16:08 +0000 (10:16 +0200)
The stale RR types are now printed with '#'.  This used to be the
prefix for RR types that were marked ancient, but commit
df50751585b64f72d93ad665abf0f485c8941a3b changed the meaning.  It is
probably better to keep '#' for stale RR types and introduce a new
prefix for reintroducing ancient type stat counters.

bin/named/statschannel.c
doc/arm/Bv9ARM-book.xml
lib/dns/include/dns/stats.h

index 4778964e010e013bf39c585fd11563502222774c..4d277d9ed8d3e61c269e7d62c33e45f4adba8baf 100644 (file)
@@ -1253,6 +1253,12 @@ rdtypestat_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
 #endif
 }
 
+static bool
+rdatastatstype_attr(dns_rdatastatstype_t type, unsigned int attr)
+{
+       return ((DNS_RDATASTATSTYPE_ATTR(type) & attr) != 0);
+}
+
 static void
 rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
        stats_dumparg_t *dumparg = arg;
@@ -1261,6 +1267,7 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
        const char *typestr;
        bool nxrrset = false;
        bool stale = false;
+       bool ancient = false;
 #ifdef HAVE_LIBXML2
        void *writer;
        int xmlrc;
@@ -1282,19 +1289,16 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
                typestr = typebuf;
        }
 
-       if ((DNS_RDATASTATSTYPE_ATTR(type) & DNS_RDATASTATSTYPE_ATTR_NXRRSET)
-           != 0)
-               nxrrset = true;
-
-       if ((DNS_RDATASTATSTYPE_ATTR(type) & DNS_RDATASTATSTYPE_ATTR_STALE)
-           != 0)
-               stale = true;
+       nxrrset = rdatastatstype_attr(type, DNS_RDATASTATSTYPE_ATTR_NXRRSET);
+       stale = rdatastatstype_attr(type, DNS_RDATASTATSTYPE_ATTR_STALE);
+       ancient = rdatastatstype_attr(type, DNS_RDATASTATSTYPE_ATTR_ANCIENT);
 
        switch (dumparg->type) {
        case isc_statsformat_file:
                fp = dumparg->arg;
-               fprintf(fp, "%20" PRIu64 " %s%s%s\n", val,
-                       stale ? "#" : "", nxrrset ? "!" : "", typestr);
+               fprintf(fp, "%20" PRIu64 " %s%s%s%s\n", val,
+                       ancient ? "~" : "", stale ? "#" : "",
+                       nxrrset ? "!" : "", typestr);
                break;
        case isc_statsformat_xml:
 #ifdef HAVE_LIBXML2
@@ -1302,7 +1306,8 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
 
                TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "rrset"));
                TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "name"));
-               TRY0(xmlTextWriterWriteFormatString(writer, "%s%s%s",
+               TRY0(xmlTextWriterWriteFormatString(writer, "%s%s%s%s",
+                                              ancient ? "~" : "",
                                               stale ? "#" : "",
                                               nxrrset ? "!" : "", typestr));
                TRY0(xmlTextWriterEndElement(writer)); /* name */
@@ -1319,7 +1324,7 @@ rdatasetstats_dump(dns_rdatastatstype_t type, uint64_t val, void *arg) {
        case isc_statsformat_json:
 #ifdef HAVE_JSON_C
                zoneobj = (json_object *) dumparg->arg;
-               snprintf(buf, sizeof(buf), "%s%s%s",
+               snprintf(buf, sizeof(buf), "%s%s%s%s", ancient ? "~" : "",
                         stale ? "#" : "", nxrrset ? "!" : "", typestr);
                obj = json_object_new_int64(val);
                if (obj == NULL)
index 733496d797042caf29d51308faefa14af0d5213f..ab2222d67c961223942162975dec17138e48ba06 100644 (file)
@@ -15233,8 +15233,9 @@ HOST-127.EXAMPLE. MX 0 .
                    type, it means that particular type of RRset is
                    known to be nonexistent (this is also known as
                    "NXRRSET").  If a hash mark (#) is present then
-                   the RRset is marked for garbage collection.
-                   Maintained per view.
+                   the RRset is stale.  If a tilde mark (~) is
+                   present, the RRset is marked for garbage
+                   collection.  Maintained per view.
                  </para>
                </entry>
              </row>
index 52bab5378e527ad271f2a53130c8520dbe7bb0f1..a4ee695db899601e41ea2fdc52201aadabd316be 100644 (file)
@@ -474,16 +474,24 @@ LIBDNS_EXTERNAL_DATA extern const char *dns_statscounter_names[];
  *     attribute is set, the base type is of no use.
  *
  * _STALE
- *     RRset type counters only.  This indicates a record that marked for
- *     removal.
+ *     RRset type counters only.  This indicates a record that is stale
+ *     but may still be served.
  *
  *     Note: incrementing _STALE will decrement the corresponding non-stale
  *     counter.
+ *
+ * _ANCIENT
+ *     RRset type counters only.  This indicates a record that is marked for
+ *     removal.
+ *
+ *     Note: incrementing _ANCIENT will decrement the corresponding
+ *     non-ancient counter.
  */
 #define DNS_RDATASTATSTYPE_ATTR_OTHERTYPE      0x0001
 #define DNS_RDATASTATSTYPE_ATTR_NXRRSET                0x0002
 #define DNS_RDATASTATSTYPE_ATTR_NXDOMAIN       0x0004
 #define DNS_RDATASTATSTYPE_ATTR_STALE          0x0008
+#define DNS_RDATASTATSTYPE_ATTR_ANCIENT                0x0010
 
 /*%<
  * Conversion macros among dns_rdatatype_t, attributes and isc_statscounter_t.