stats.c revision 70e5a7403f0e0a3bd292b8287c5fed5772c15270
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews/*
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence * Copyright (C) 2000, 2001 Internet Software Consortium.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews *
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Permission to use, copy, modify, and/or distribute this software for any
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * purpose with or without fee is hereby granted, provided that the above
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews * copyright notice and this permission notice appear in all copies.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews *
4b6dc226f78862286daa69fba761eac9fd5da16aAutomatic Updater * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrews * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
854d0238dbc2908490197984b3b9d558008a53dfMark Andrews * PERFORMANCE OF THIS SOFTWARE.
854d0238dbc2908490197984b3b9d558008a53dfMark Andrews */
3761c433912beabe43abeed2c3513b6201c59f64Mark Andrews
6324997211a5e2d82528dcde98e8981190a35faeMichael Graff/* $Id: stats.c,v 1.12 2007/06/19 23:47:16 tbox Exp $ */
6324997211a5e2d82528dcde98e8981190a35faeMichael Graff
3ddd814a97de1d152ba0913c592d6e6dc83d38a6Michael Graff/*! \file */
6d12fdf96621801e80f3f4c2a8a569fe48766a20David Lawrence
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#include <config.h>
deaaf94332abbfdb3aff53675546acfed16e5eb6Mark Andrews
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#include <isc/mem.h>
ae114ded82e773a4d9058f833f964a17514712a8Brian Wellington
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley#include <dns/stats.h>
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark AndrewsLIBDNS_EXTERNAL_DATA const char *dns_statscounter_names[DNS_STATS_NCOUNTERS] =
bddfe77128b0f16af263ff149db40f0d885f43d0Mark Andrews {
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrews "success",
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman "referral",
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "nxrrset",
f1b68725503ff3e46001eee5a1751e29a43a09d1Andreas Gustafsson "nxdomain",
add4043305ca411202ed9cf1929a4179016515ceBrian Wellington "recursion",
add4043305ca411202ed9cf1929a4179016515ceBrian Wellington "failure",
add4043305ca411202ed9cf1929a4179016515ceBrian Wellington "duplicate",
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews "dropped"
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews };
419590499823ce15b5d2ad4fe71eaf04bd5a86c0Michael Graff
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrewsisc_result_t
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrewsdns_stats_alloccounters(isc_mem_t *mctx, isc_uint64_t **ctrp) {
3ddd814a97de1d152ba0913c592d6e6dc83d38a6Michael Graff int i;
6d12fdf96621801e80f3f4c2a8a569fe48766a20David Lawrence isc_uint64_t *p =
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews isc_mem_get(mctx, DNS_STATS_NCOUNTERS * sizeof(isc_uint64_t));
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews if (p == NULL)
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley return (ISC_R_NOMEMORY);
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrews for (i = 0; i < DNS_STATS_NCOUNTERS; i++)
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman p[i] = 0;
b589e90689c6e87bf9608424ca8d99571c18bc61Mark Andrews *ctrp = p;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews return (ISC_R_SUCCESS);
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews}
2383eb527269d333df4222da20e4b422c3662daaEvan Hunt
deaaf94332abbfdb3aff53675546acfed16e5eb6Mark Andrewsvoid
2383eb527269d333df4222da20e4b422c3662daaEvan Huntdns_stats_freecounters(isc_mem_t *mctx, isc_uint64_t **ctrp) {
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews isc_mem_put(mctx, *ctrp, DNS_STATS_NCOUNTERS * sizeof(isc_uint64_t));
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews *ctrp = NULL;
3ddd814a97de1d152ba0913c592d6e6dc83d38a6Michael Graff}
6d12fdf96621801e80f3f4c2a8a569fe48766a20David Lawrence