#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;
const char *typestr;
bool nxrrset = false;
bool stale = false;
+ bool ancient = false;
#ifdef HAVE_LIBXML2
void *writer;
int xmlrc;
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
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 */
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)
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>
* 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.