summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bind/lib/isc/mem.c
diff options
context:
space:
mode:
authorflorian <florian@openbsd.org>2020-01-20 18:43:21 +0000
committerflorian <florian@openbsd.org>2020-01-20 18:43:21 +0000
commit95dfa548bee9da1241813dfd7e8c7be4d099a7b1 (patch)
treeca43d01f2a4bead5d2dbbf6d91d599256d952401 /usr.sbin/bind/lib/isc/mem.c
parentFix a address family desynchronisation between lwres_conf and (diff)
downloadwireguard-openbsd-95dfa548bee9da1241813dfd7e8c7be4d099a7b1.tar.xz
wireguard-openbsd-95dfa548bee9da1241813dfd7e8c7be4d099a7b1.zip
We are not using json, xml nor httpd.
OK millert
Diffstat (limited to 'usr.sbin/bind/lib/isc/mem.c')
-rw-r--r--usr.sbin/bind/lib/isc/mem.c327
1 files changed, 2 insertions, 325 deletions
diff --git a/usr.sbin/bind/lib/isc/mem.c b/usr.sbin/bind/lib/isc/mem.c
index a03dfb0a99a..eec2360fefc 100644
--- a/usr.sbin/bind/lib/isc/mem.c
+++ b/usr.sbin/bind/lib/isc/mem.c
@@ -25,7 +25,7 @@
#include <limits.h>
#include <isc/bind9.h>
-#include <isc/json.h>
+
#include <isc/magic.h>
#include <isc/mem.h>
#include <isc/msgs.h>
@@ -35,7 +35,7 @@
#include <isc/mutex.h>
#include <isc/util.h>
-#include <isc/xml.h>
+
#define MCTXLOCK(m, l) if (((m)->flags & ISC_MEMFLAG_NOLOCK) == 0) LOCK(l)
#define MCTXUNLOCK(m, l) if (((m)->flags & ISC_MEMFLAG_NOLOCK) == 0) UNLOCK(l)
@@ -2331,329 +2331,6 @@ typedef struct summarystat {
uint64_t contextsize;
} summarystat_t;
-#ifdef HAVE_LIBXML2
-#define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0)
-static int
-xml_renderctx(isc__mem_t *ctx, summarystat_t *summary,
- xmlTextWriterPtr writer)
-{
- int xmlrc;
-
- REQUIRE(VALID_CONTEXT(ctx));
-
- MCTXLOCK(ctx, &ctx->lock);
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "context"));
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "id"));
- TRY0(xmlTextWriterWriteFormatString(writer, "%p", ctx));
- TRY0(xmlTextWriterEndElement(writer)); /* id */
-
- if (ctx->name[0] != 0) {
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "name"));
- TRY0(xmlTextWriterWriteFormatString(writer, "%s", ctx->name));
- TRY0(xmlTextWriterEndElement(writer)); /* name */
- }
-
- summary->contextsize += sizeof(*ctx) +
- (ctx->max_size + 1) * sizeof(struct stats) +
- ctx->max_size * sizeof(element *) +
- ctx->basic_table_count * sizeof(char *);
-#if ISC_MEM_TRACKLINES
- if (ctx->debuglist != NULL) {
- summary->contextsize +=
- (ctx->max_size + 1) * sizeof(debuglist_t) +
- ctx->debuglistcnt * sizeof(debuglink_t);
- }
-#endif
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "references"));
- TRY0(xmlTextWriterWriteFormatString(writer, "%d", ctx->references));
- TRY0(xmlTextWriterEndElement(writer)); /* references */
-
- summary->total += ctx->total;
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "total"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- (uint64_t)ctx->total));
- TRY0(xmlTextWriterEndElement(writer)); /* total */
-
- summary->inuse += ctx->inuse;
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "inuse"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- (uint64_t)ctx->inuse));
- TRY0(xmlTextWriterEndElement(writer)); /* inuse */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "maxinuse"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- (uint64_t)ctx->maxinuse));
- TRY0(xmlTextWriterEndElement(writer)); /* maxinuse */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "blocksize"));
- if ((ctx->flags & ISC_MEMFLAG_INTERNAL) != 0) {
- summary->blocksize += ctx->basic_table_count *
- NUM_BASIC_BLOCKS * ctx->mem_target;
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- (uint64_t)
- ctx->basic_table_count *
- NUM_BASIC_BLOCKS *
- ctx->mem_target));
- } else
- TRY0(xmlTextWriterWriteFormatString(writer, "%s", "-"));
- TRY0(xmlTextWriterEndElement(writer)); /* blocksize */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "pools"));
- TRY0(xmlTextWriterWriteFormatString(writer, "%u", ctx->poolcnt));
- TRY0(xmlTextWriterEndElement(writer)); /* pools */
- summary->contextsize += ctx->poolcnt * sizeof(isc_mempool_t);
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "hiwater"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- (uint64_t)ctx->hi_water));
- TRY0(xmlTextWriterEndElement(writer)); /* hiwater */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "lowater"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- (uint64_t)ctx->lo_water));
- TRY0(xmlTextWriterEndElement(writer)); /* lowater */
-
- TRY0(xmlTextWriterEndElement(writer)); /* context */
-
- error:
- MCTXUNLOCK(ctx, &ctx->lock);
-
- return (xmlrc);
-}
-
-int
-isc_mem_renderxml(xmlTextWriterPtr writer) {
- isc__mem_t *ctx;
- summarystat_t summary;
- uint64_t lost;
- int xmlrc;
-
- memset(&summary, 0, sizeof(summary));
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "contexts"));
-
- RUNTIME_CHECK(isc_once_do(&once, initialize_action) == ISC_R_SUCCESS);
-
- LOCK(&contextslock);
- lost = totallost;
- for (ctx = ISC_LIST_HEAD(contexts);
- ctx != NULL;
- ctx = ISC_LIST_NEXT(ctx, link)) {
- xmlrc = xml_renderctx(ctx, &summary, writer);
- if (xmlrc < 0) {
- UNLOCK(&contextslock);
- goto error;
- }
- }
- UNLOCK(&contextslock);
-
- TRY0(xmlTextWriterEndElement(writer)); /* contexts */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "summary"));
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "TotalUse"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- summary.total));
- TRY0(xmlTextWriterEndElement(writer)); /* TotalUse */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "InUse"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- summary.inuse));
- TRY0(xmlTextWriterEndElement(writer)); /* InUse */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "BlockSize"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- summary.blocksize));
- TRY0(xmlTextWriterEndElement(writer)); /* BlockSize */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "ContextSize"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- summary.contextsize));
- TRY0(xmlTextWriterEndElement(writer)); /* ContextSize */
-
- TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "Lost"));
- TRY0(xmlTextWriterWriteFormatString(writer,
- "%llu",
- lost));
- TRY0(xmlTextWriterEndElement(writer)); /* Lost */
-
- TRY0(xmlTextWriterEndElement(writer)); /* summary */
- error:
- return (xmlrc);
-}
-
-#endif /* HAVE_LIBXML2 */
-
-#ifdef HAVE_JSON
-#define CHECKMEM(m) do { \
- if (m == NULL) { \
- result = ISC_R_NOMEMORY;\
- goto error;\
- } \
-} while(0)
-
-static isc_result_t
-json_renderctx(isc__mem_t *ctx, summarystat_t *summary, json_object *array) {
- isc_result_t result = ISC_R_FAILURE;
- json_object *ctxobj, *obj;
- char buf[1024];
-
- REQUIRE(VALID_CONTEXT(ctx));
- REQUIRE(summary != NULL);
- REQUIRE(array != NULL);
-
- MCTXLOCK(ctx, &ctx->lock);
-
- summary->contextsize += sizeof(*ctx) +
- (ctx->max_size + 1) * sizeof(struct stats) +
- ctx->max_size * sizeof(element *) +
- ctx->basic_table_count * sizeof(char *);
- summary->total += ctx->total;
- summary->inuse += ctx->inuse;
- if ((ctx->flags & ISC_MEMFLAG_INTERNAL) != 0)
- summary->blocksize += ctx->basic_table_count *
- NUM_BASIC_BLOCKS * ctx->mem_target;
-#if ISC_MEM_TRACKLINES
- if (ctx->debuglist != NULL) {
- summary->contextsize +=
- (ctx->max_size + 1) * sizeof(debuglist_t) +
- ctx->debuglistcnt * sizeof(debuglink_t);
- }
-#endif
-
- ctxobj = json_object_new_object();
- CHECKMEM(ctxobj);
-
- snprintf(buf, sizeof(buf), "%p", ctx);
- obj = json_object_new_string(buf);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "id", obj);
-
- if (ctx->name[0] != 0) {
- obj = json_object_new_string(ctx->name);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "name", obj);
- }
-
- obj = json_object_new_int64(ctx->references);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "references", obj);
-
- obj = json_object_new_int64(ctx->total);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "total", obj);
-
- obj = json_object_new_int64(ctx->inuse);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "inuse", obj);
-
- obj = json_object_new_int64(ctx->maxinuse);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "maxinuse", obj);
-
- if ((ctx->flags & ISC_MEMFLAG_INTERNAL) != 0) {
- uint64_t blocksize;
- blocksize = ctx->basic_table_count * NUM_BASIC_BLOCKS *
- ctx->mem_target;
- obj = json_object_new_int64(blocksize);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "blocksize", obj);
- }
-
- obj = json_object_new_int64(ctx->poolcnt);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "pools", obj);
-
- summary->contextsize += ctx->poolcnt * sizeof(isc_mempool_t);
-
- obj = json_object_new_int64(ctx->hi_water);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "hiwater", obj);
-
- obj = json_object_new_int64(ctx->lo_water);
- CHECKMEM(obj);
- json_object_object_add(ctxobj, "lowater", obj);
-
- MCTXUNLOCK(ctx, &ctx->lock);
- json_object_array_add(array, ctxobj);
- return (ISC_R_SUCCESS);
-
- error:
- MCTXUNLOCK(ctx, &ctx->lock);
- if (ctxobj != NULL)
- json_object_put(ctxobj);
- return (result);
-}
-
-isc_result_t
-isc_mem_renderjson(json_object *memobj) {
- isc_result_t result = ISC_R_SUCCESS;
- isc__mem_t *ctx;
- summarystat_t summary;
- uint64_t lost;
- json_object *ctxarray, *obj;
-
- memset(&summary, 0, sizeof(summary));
- RUNTIME_CHECK(isc_once_do(&once, initialize_action) == ISC_R_SUCCESS);
-
- ctxarray = json_object_new_array();
- CHECKMEM(ctxarray);
-
- LOCK(&contextslock);
- lost = totallost;
- for (ctx = ISC_LIST_HEAD(contexts);
- ctx != NULL;
- ctx = ISC_LIST_NEXT(ctx, link)) {
- result = json_renderctx(ctx, &summary, ctxarray);
- if (result != ISC_R_SUCCESS) {
- UNLOCK(&contextslock);
- goto error;
- }
- }
- UNLOCK(&contextslock);
-
- obj = json_object_new_int64(summary.total);
- CHECKMEM(obj);
- json_object_object_add(memobj, "TotalUse", obj);
-
- obj = json_object_new_int64(summary.inuse);
- CHECKMEM(obj);
- json_object_object_add(memobj, "InUse", obj);
-
- obj = json_object_new_int64(summary.blocksize);
- CHECKMEM(obj);
- json_object_object_add(memobj, "BlockSize", obj);
-
- obj = json_object_new_int64(summary.contextsize);
- CHECKMEM(obj);
- json_object_object_add(memobj, "ContextSize", obj);
-
- obj = json_object_new_int64(lost);
- CHECKMEM(obj);
- json_object_object_add(memobj, "Lost", obj);
-
- json_object_object_add(memobj, "contexts", ctxarray);
- return (ISC_R_SUCCESS);
-
- error:
- if (ctxarray != NULL)
- json_object_put(ctxarray);
- return (result);
-}
-#endif /* HAVE_JSON */
-
static isc_memcreatefunc_t mem_createfunc = NULL;
isc_result_t