From: Evan Hunt Date: Thu, 26 Feb 2015 00:55:25 +0000 (-0800) Subject: [master] include serial number in JSON zone stats X-Git-Tag: v9.11.0a1~979 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=aeff3f0541beed6c7e384737bc83b46ea5e66a84;p=thirdparty%2Fbind9.git [master] include serial number in JSON zone stats 4068. [bug] Serial number was omitted from JSON zone statistics. [RT #38604] --- diff --git a/CHANGES b/CHANGES index 30291a8b2ce..73eed4f47e9 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4068. [bug] Serial number was omitted from JSON zone statistics. + [RT #38604] + 4067. [cleanup] Reduce noise from RRL when query logging is disabled. [RT #38648] diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c index f0584c3ac83..ed213017863 100644 --- a/bin/named/statschannel.c +++ b/bin/named/statschannel.c @@ -14,8 +14,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: statschannel.c,v 1.28.224.1 2011/12/22 07:48:27 marka Exp $ */ - /*! \file */ #include @@ -1437,7 +1435,9 @@ wrap_jsonfree(isc_buffer_t *buffer, void *arg) { } static json_object * -addzone(char *name, char *class, isc_uint32_t serial) { +addzone(char *name, char *class, isc_uint32_t serial, + isc_boolean_t add_serial) +{ json_object *node = json_object_new_object(); if (node == NULL) @@ -1445,7 +1445,9 @@ addzone(char *name, char *class, isc_uint32_t serial) { json_object_object_add(node, "name", json_object_new_string(name)); json_object_object_add(node, "class", json_object_new_string(class)); - json_object_object_add(node, "serial", json_object_new_int64(serial)); + if (add_serial) + json_object_object_add(node, "serial", + json_object_new_int64(serial)); return (node); } @@ -1479,9 +1481,10 @@ zone_jsonrender(dns_zone_t *zone, void *arg) { class_only = class; if (dns_zone_getserial2(zone, &serial) != ISC_R_SUCCESS) - serial = -1; + zoneobj = addzone(zone_name_only, class_only, 0, ISC_FALSE); + else + zoneobj = addzone(zone_name_only, class_only, serial, ISC_TRUE); - zoneobj = addzone(zone_name_only, class_only, serial); if (zoneobj == NULL) return (ISC_R_NOMEMORY); @@ -1569,7 +1572,7 @@ generatejson(ns_server_t *server, size_t *msglen, /* * These statistics are included no matter which URL we use. */ - obj = json_object_new_string("1.0"); + obj = json_object_new_string("1.1"); CHECKMEM(obj); json_object_object_add(bindstats, "json-stats-version", obj);