CHECK(dns_view_createresolver(view, loopmgr, 1, netmgr, 0,
tlsctx_client_cache, dispatch, NULL));
- CHECK(isc_stats_create(mctx, &resstats, dns_resstatscounter_max));
+ isc_stats_create(mctx, &resstats, dns_resstatscounter_max);
dns_resolver_setstats(view->resolver, resstats);
isc_stats_detach(&resstats);
- CHECK(dns_rdatatypestats_create(mctx, &resquerystats));
+ dns_rdatatypestats_create(mctx, &resquerystats);
dns_resolver_setquerystats(view->resolver, resquerystats);
dns_stats_detach(&resquerystats);
return (result);
}
-static isc_result_t
+static void
setquerystats(dns_zone_t *zone, isc_mem_t *mctx, dns_zonestat_level_t level) {
- isc_result_t result;
isc_stats_t *zoneqrystats;
dns_zone_setstatlevel(zone, level);
zoneqrystats = NULL;
if (level == dns_zonestat_full) {
- result = isc_stats_create(mctx, &zoneqrystats,
- ns_statscounter_max);
- if (result != ISC_R_SUCCESS) {
- return (result);
- }
+ isc_stats_create(mctx, &zoneqrystats, ns_statscounter_max);
}
dns_zone_setrequeststats(zone, zoneqrystats);
if (zoneqrystats != NULL) {
isc_stats_detach(&zoneqrystats);
}
-
- return (ISC_R_SUCCESS);
}
static named_cache_t *
dns_zone_setcheckdstype(zone, dns_checkdstype_no);
dns_zone_setnotifytype(zone, dns_notifytype_no);
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS, true);
- CHECK(setquerystats(zone, mctx, dns_zonestat_none)); /* XXXMPA */
+ setquerystats(zone, mctx, dns_zonestat_none);
CHECK(dns_view_addzone(view, zone));
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
NAMED_LOGMODULE_SERVER, ISC_LOG_INFO,
dns_zone_clearxfracl(zone);
}
- CHECK(setquerystats(zone, view->mctx, statlevel));
+ setquerystats(zone, view->mctx, statlevel);
if (db != NULL) {
dns_db_closeversion(db, &version, true);
CHECK(dns_zone_replacedb(zone, db, false));
named_g_server->tlsctx_client_cache, dispatch4, dispatch6));
if (resstats == NULL) {
- CHECK(isc_stats_create(mctx, &resstats,
- dns_resstatscounter_max));
+ isc_stats_create(mctx, &resstats, dns_resstatscounter_max);
}
dns_resolver_setstats(view->resolver, resstats);
if (resquerystats == NULL) {
- CHECK(dns_rdatatypestats_create(mctx, &resquerystats));
+ dns_rdatatypestats_create(mctx, &resquerystats);
}
dns_resolver_setquerystats(view->resolver, resquerystats);
dns_zone_setjournalsize(zone, 0);
dns_zone_setstats(zone, named_g_server->zonestats);
- CHECK(setquerystats(zone, mctx, dns_zonestat_none));
+ setquerystats(zone, mctx, dns_zonestat_none);
if (view->managed_keys != NULL) {
dns_zone_detach(&view->managed_keys);
server->sighup = isc_signal_new(
named_g_loopmgr, named_server_reloadwanted, server, SIGHUP);
- CHECKFATAL(isc_stats_create(server->mctx, &server->sockstats,
- isc_sockstatscounter_max),
- "isc_stats_create");
+ isc_stats_create(server->mctx, &server->sockstats,
+ isc_sockstatscounter_max);
isc_nm_setstats(named_g_netmgr, server->sockstats);
- CHECKFATAL(isc_stats_create(named_g_mctx, &server->zonestats,
- dns_zonestatscounter_max),
- "dns_stats_create (zone)");
+ isc_stats_create(named_g_mctx, &server->zonestats,
+ dns_zonestatscounter_max);
- CHECKFATAL(isc_stats_create(named_g_mctx, &server->resolverstats,
- dns_resstatscounter_max),
- "dns_stats_create (resolver)");
+ isc_stats_create(named_g_mctx, &server->resolverstats,
+ dns_resstatscounter_max);
CHECKFATAL(named_controls_create(server, &server->controls),
"named_controls_create");
rcvquerystats = NULL;
dnssecsignstats = NULL;
if (statlevel == dns_zonestat_full) {
- CHECK(isc_stats_create(mctx, &zoneqrystats,
- ns_statscounter_max));
- CHECK(dns_rdatatypestats_create(mctx, &rcvquerystats));
- CHECK(dns_dnssecsignstats_create(mctx, &dnssecsignstats));
+ isc_stats_create(mctx, &zoneqrystats, ns_statscounter_max);
+ dns_rdatatypestats_create(mctx, &rcvquerystats);
+ dns_dnssecsignstats_create(mctx, &dnssecsignstats);
}
dns_zone_setrequeststats(zone, zoneqrystats);
dns_zone_setrcvquerystats(zone, rcvquerystats);
RWUNLOCK(&adb->entries_lock, isc_rwlocktype_write);
isc_rwlock_destroy(&adb->entries_lock);
- isc_mem_destroy(&adb->hmctx);
+ isc_mem_detach(&adb->hmctx);
isc_mutex_destroy(&adb->lock);
isc_refcount_destroy(&adb->references);
dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_loopmgr_t *loopmgr,
dns_adb_t **newadb) {
dns_adb_t *adb = NULL;
- isc_result_t result;
REQUIRE(mem != NULL);
REQUIRE(view != NULL);
isc_mutex_init(&adb->lock);
- result = isc_stats_create(adb->mctx, &adb->stats, dns_adbstats_max);
- if (result != ISC_R_SUCCESS) {
- goto free_lock;
- }
+ isc_stats_create(adb->mctx, &adb->stats, dns_adbstats_max);
set_adbstat(adb, 0, dns_adbstats_nnames);
set_adbstat(adb, 0, dns_adbstats_nentries);
adb->magic = DNS_ADB_MAGIC;
*newadb = adb;
return (ISC_R_SUCCESS);
-
-free_lock:
- isc_mutex_destroy(&adb->lock);
-
- isc_rwlock_destroy(&adb->entries_lock);
- isc_hashmap_destroy(&adb->entries);
- INSIST(ISC_LIST_EMPTY(adb->entries_lru));
-
- isc_rwlock_destroy(&adb->names_lock);
- isc_hashmap_destroy(&adb->names);
- INSIST(ISC_LIST_EMPTY(adb->names_lru));
-
- isc_mem_destroy(&adb->hmctx);
-
- dns_resolver_detach(&adb->res);
- dns_view_weakdetach(&adb->view);
- isc_mem_putanddetach(&adb->mctx, adb, sizeof(dns_adb_t));
-
- return (result);
}
void
isc_refcount_init(&cache->references, 1);
- result = isc_stats_create(mctx, &cache->stats,
- dns_cachestatscounter_max);
- if (result != ISC_R_SUCCESS) {
- goto cleanup_lock;
- }
+ isc_stats_create(mctx, &cache->stats, dns_cachestatscounter_max);
/*
* Create the database
dns_db_detach(&cache->db);
cleanup_stats:
isc_stats_detach(&cache->stats);
-cleanup_lock:
isc_mutex_destroy(&cache->lock);
isc_mem_free(mctx, cache->name);
isc_mem_detach(&cache->hmctx);
isc_mutex_init(&env->reopen_lock);
env->path = isc_mem_strdup(env->mctx, path);
isc_refcount_init(&env->refcount, 1);
- CHECK(isc_stats_create(env->mctx, &env->stats, dns_dnstapcounter_max));
+ isc_stats_create(env->mctx, &env->stats, dns_dnstapcounter_max);
fwopt = fstrm_writer_options_init();
if (fwopt == NULL) {
ISC_LANG_BEGINDECLS
-isc_result_t
+void
dns_generalstats_create(isc_mem_t *mctx, dns_stats_t **statsp, int ncounters);
/*%<
* Create a statistics counter structure of general type. It counts a general
*\li 'mctx' must be a valid memory context.
*
*\li 'statsp' != NULL && '*statsp' == NULL.
- *
- * Returns:
- *\li ISC_R_SUCCESS -- all ok
- *
- *\li anything else -- failure
*/
-isc_result_t
+void
dns_rdatatypestats_create(isc_mem_t *mctx, dns_stats_t **statsp);
/*%<
* Create a statistics counter structure per rdatatype.
*\li 'mctx' must be a valid memory context.
*
*\li 'statsp' != NULL && '*statsp' == NULL.
- *
- * Returns:
- *\li ISC_R_SUCCESS -- all ok
- *
- *\li anything else -- failure
*/
-isc_result_t
+void
dns_rdatasetstats_create(isc_mem_t *mctx, dns_stats_t **statsp);
/*%<
* Create a statistics counter structure per RRset.
*\li 'mctx' must be a valid memory context.
*
*\li 'statsp' != NULL && '*statsp' == NULL.
- *
- * Returns:
- *\li ISC_R_SUCCESS -- all ok
- *
- *\li anything else -- failure
*/
-isc_result_t
+void
dns_opcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp);
/*%<
* Create a statistics counter structure per opcode.
*\li 'mctx' must be a valid memory context.
*
*\li 'statsp' != NULL && '*statsp' == NULL.
- *
- * Returns:
- *\li ISC_R_SUCCESS -- all ok
- *
- *\li anything else -- failure
*/
-isc_result_t
+void
dns_rcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp);
/*%<
* Create a statistics counter structure per assigned rcode.
*\li 'mctx' must be a valid memory context.
*
*\li 'statsp' != NULL && '*statsp' == NULL.
- *
- * Returns:
- *\li ISC_R_SUCCESS -- all ok
- *
- *\li anything else -- failure
*/
-isc_result_t
+void
dns_dnssecsignstats_create(isc_mem_t *mctx, dns_stats_t **statsp);
/*%<
* Create a statistics counter structure per assigned DNSKEY id.
*\li 'mctx' must be a valid memory context.
*
*\li 'statsp' != NULL && '*statsp' == NULL.
- *
- * Returns:
- *\li ISC_R_SUCCESS -- all ok
- *
- *\li anything else -- failure
*/
void
sizeof(rbtdb_nodelock_t));
if (IS_CACHE(rbtdb)) {
- result = dns_rdatasetstats_create(mctx, &rbtdb->rrsetstats);
- if (result != ISC_R_SUCCESS) {
- goto cleanup_node_locks;
- }
+ dns_rdatasetstats_create(mctx, &rbtdb->rrsetstats);
rbtdb->lru = isc_mem_get(mctx,
rbtdb->node_lock_count *
sizeof(dns_slabheaderlist_t));
return (ISC_R_SUCCESS);
-cleanup_node_locks:
- isc_mem_put(mctx, rbtdb->node_locks,
- rbtdb->node_lock_count * sizeof(rbtdb_nodelock_t));
-
cleanup_tree_lock:
TREE_DESTROYLOCK(&rbtdb->tree_lock);
RBTDB_DESTROYLOCK(&rbtdb->lock);
/*%
* Create methods
*/
-static isc_result_t
+static void
create_stats(isc_mem_t *mctx, dns_statstype_t type, int ncounters,
dns_stats_t **statsp) {
- dns_stats_t *stats;
- isc_result_t result;
-
- stats = isc_mem_get(mctx, sizeof(*stats));
+ dns_stats_t *stats = isc_mem_get(mctx, sizeof(*stats));
stats->counters = NULL;
isc_refcount_init(&stats->references, 1);
- result = isc_stats_create(mctx, &stats->counters, ncounters);
- if (result != ISC_R_SUCCESS) {
- goto clean_mutex;
- }
+ isc_stats_create(mctx, &stats->counters, ncounters);
stats->magic = DNS_STATS_MAGIC;
stats->type = type;
stats->mctx = NULL;
isc_mem_attach(mctx, &stats->mctx);
*statsp = stats;
-
- return (ISC_R_SUCCESS);
-
-clean_mutex:
- isc_mem_put(mctx, stats, sizeof(*stats));
-
- return (result);
}
-isc_result_t
+void
dns_generalstats_create(isc_mem_t *mctx, dns_stats_t **statsp, int ncounters) {
REQUIRE(statsp != NULL && *statsp == NULL);
- return (create_stats(mctx, dns_statstype_general, ncounters, statsp));
+ create_stats(mctx, dns_statstype_general, ncounters, statsp);
}
-isc_result_t
+void
dns_rdatatypestats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
REQUIRE(statsp != NULL && *statsp == NULL);
* Create rdtype statistics for the first 255 RRtypes,
* plus one additional for other RRtypes.
*/
- return (create_stats(mctx, dns_statstype_rdtype,
- (RDTYPECOUNTER_MAXTYPE + 1), statsp));
+ create_stats(mctx, dns_statstype_rdtype, (RDTYPECOUNTER_MAXTYPE + 1),
+ statsp);
}
-isc_result_t
+void
dns_rdatasetstats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
REQUIRE(statsp != NULL && *statsp == NULL);
- return (create_stats(mctx, dns_statstype_rdataset,
- (RDTYPECOUNTER_MAXVAL + 1), statsp));
+ create_stats(mctx, dns_statstype_rdataset, (RDTYPECOUNTER_MAXVAL + 1),
+ statsp);
}
-isc_result_t
+void
dns_opcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
REQUIRE(statsp != NULL && *statsp == NULL);
- return (create_stats(mctx, dns_statstype_opcode, 16, statsp));
+ create_stats(mctx, dns_statstype_opcode, 16, statsp);
}
-isc_result_t
+void
dns_rcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
REQUIRE(statsp != NULL && *statsp == NULL);
- return (create_stats(mctx, dns_statstype_rcode, dns_rcode_badcookie + 1,
- statsp));
+ create_stats(mctx, dns_statstype_rcode, dns_rcode_badcookie + 1,
+ statsp);
}
-isc_result_t
+void
dns_dnssecsignstats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
REQUIRE(statsp != NULL && *statsp == NULL);
* Create two counters per key, one is the key id, the other two are
* the actual counters for creating and refreshing signatures.
*/
- return (create_stats(mctx, dns_statstype_dnssec,
- dnssecsign_num_keys * dnssecsign_block_size,
- statsp));
+ create_stats(mctx, dns_statstype_dnssec,
+ dnssecsign_num_keys * dnssecsign_block_size, statsp);
}
/*%
isc_result_t
dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx, unsigned int tid) {
- isc_result_t result;
isc_time_t now;
dns_zone_t *zone = NULL;
zone->notify = r;
zone->defaultkasp = NULL;
- result = isc_stats_create(mctx, &zone->gluecachestats,
- dns_gluecachestatscounter_max);
- if (result != ISC_R_SUCCESS) {
- goto free_refs;
- }
+ isc_stats_create(mctx, &zone->gluecachestats,
+ dns_gluecachestatscounter_max);
zone->magic = ZONE_MAGIC;
*zonep = zone;
return (ISC_R_SUCCESS);
-
-free_refs:
- isc_refcount_decrement0(&zone->references);
- isc_refcount_destroy(&zone->references);
- isc_refcount_destroy(&zone->irefs);
- ZONEDB_DESTROYLOCK(&zone->dblock);
- isc_mutex_destroy(&zone->lock);
- isc_mem_putanddetach(&zone->mctx, zone, sizeof(*zone));
- return (result);
}
static void
*/
typedef void (*isc_stats_dumper_t)(isc_statscounter_t, uint64_t, void *);
-isc_result_t
+void
isc_stats_create(isc_mem_t *mctx, isc_stats_t **statsp, int ncounters);
/*%<
* Create a statistics counter structure of general type. It counts a general
*\li 'mctx' must be a valid memory context.
*
*\li 'statsp' != NULL && '*statsp' == NULL.
- *
- * Returns:
- *\li ISC_R_SUCCESS -- all ok
- *
- *\li anything else -- failure
*/
void
isc__atomic_statcounter_t *counters;
};
-static isc_result_t
-create_stats(isc_mem_t *mctx, int ncounters, isc_stats_t **statsp) {
- isc_stats_t *stats;
- size_t counters_alloc_size;
-
- REQUIRE(statsp != NULL && *statsp == NULL);
-
- stats = isc_mem_get(mctx, sizeof(*stats));
- counters_alloc_size = sizeof(isc__atomic_statcounter_t) * ncounters;
- stats->counters = isc_mem_get(mctx, counters_alloc_size);
- isc_refcount_init(&stats->references, 1);
- for (int i = 0; i < ncounters; i++) {
- atomic_init(&stats->counters[i], 0);
- }
- stats->mctx = NULL;
- isc_mem_attach(mctx, &stats->mctx);
- stats->ncounters = ncounters;
- stats->magic = ISC_STATS_MAGIC;
- *statsp = stats;
-
- return (ISC_R_SUCCESS);
-}
-
void
isc_stats_attach(isc_stats_t *stats, isc_stats_t **statsp) {
REQUIRE(ISC_STATS_VALID(stats));
return (stats->ncounters);
}
-isc_result_t
+void
isc_stats_create(isc_mem_t *mctx, isc_stats_t **statsp, int ncounters) {
REQUIRE(statsp != NULL && *statsp == NULL);
- return (create_stats(mctx, ncounters, statsp));
+ isc_stats_t *stats = isc_mem_get(mctx, sizeof(*stats));
+ size_t counters_alloc_size = sizeof(isc__atomic_statcounter_t) *
+ ncounters;
+ stats->counters = isc_mem_get(mctx, counters_alloc_size);
+ isc_refcount_init(&stats->references, 1);
+ for (int i = 0; i < ncounters; i++) {
+ atomic_init(&stats->counters[i], 0);
+ }
+ stats->mctx = NULL;
+ isc_mem_attach(mctx, &stats->mctx);
+ stats->ncounters = ncounters;
+ stats->magic = ISC_STATS_MAGIC;
+ *statsp = stats;
}
void
/*! \file include/ns/stats.h */
+#include <isc/mem.h>
+#include <isc/stats.h>
+
#include <ns/types.h>
/*%
void
ns_stats_detach(ns_stats_t **statsp);
-isc_result_t
+void
ns_stats_create(isc_mem_t *mctx, int ncounters, ns_stats_t **statsp);
void
ns_server_create(isc_mem_t *mctx, ns_matchview_t matchingview,
ns_server_t **sctxp) {
ns_server_t *sctx;
- isc_result_t result;
REQUIRE(sctxp != NULL && *sctxp == NULL);
ISC_LIST_INIT(sctx->http_quotas);
isc_mutex_init(&sctx->http_quotas_lock);
- CHECKFATAL(ns_stats_create(mctx, ns_statscounter_max, &sctx->nsstats));
+ ns_stats_create(mctx, ns_statscounter_max, &sctx->nsstats);
- CHECKFATAL(dns_rdatatypestats_create(mctx, &sctx->rcvquerystats));
+ dns_rdatatypestats_create(mctx, &sctx->rcvquerystats);
- CHECKFATAL(dns_opcodestats_create(mctx, &sctx->opcodestats));
+ dns_opcodestats_create(mctx, &sctx->opcodestats);
- CHECKFATAL(dns_rcodestats_create(mctx, &sctx->rcodestats));
+ dns_rcodestats_create(mctx, &sctx->rcodestats);
isc_histomulti_create(mctx, DNS_SIZEHISTO_SIGBITSIN,
&sctx->udpinstats4);
}
}
-isc_result_t
+void
ns_stats_create(isc_mem_t *mctx, int ncounters, ns_stats_t **statsp) {
- ns_stats_t *stats;
- isc_result_t result;
-
REQUIRE(statsp != NULL && *statsp == NULL);
- stats = isc_mem_get(mctx, sizeof(*stats));
+ ns_stats_t *stats = isc_mem_get(mctx, sizeof(*stats));
stats->counters = NULL;
isc_refcount_init(&stats->references, 1);
- result = isc_stats_create(mctx, &stats->counters, ncounters);
- if (result != ISC_R_SUCCESS) {
- goto clean_mem;
- }
+ isc_stats_create(mctx, &stats->counters, ncounters);
stats->magic = NS_STATS_MAGIC;
stats->mctx = NULL;
isc_mem_attach(mctx, &stats->mctx);
*statsp = stats;
-
- return (ISC_R_SUCCESS);
-
-clean_mem:
- isc_mem_put(mctx, stats, sizeof(*stats));
-
- return (result);
}
/*%
* active -> stale -> ancient.
*/
static void
-rdatasetstats(void **state, bool servestale) {
+rdatasetstats(void **state ISC_ATTR_UNUSED, bool servestale) {
unsigned int i;
unsigned int from = 0;
dns_stats_t *stats = NULL;
- isc_result_t result;
- UNUSED(state);
-
- result = dns_rdatasetstats_create(mctx, &stats);
- assert_int_equal(result, ISC_R_SUCCESS);
+ dns_rdatasetstats_create(mctx, &stats);
/* First 255 types. */
for (i = 1; i <= 255; i++) {
/* test stats */
ISC_RUN_TEST_IMPL(isc_stats_basic) {
isc_stats_t *stats = NULL;
- isc_result_t result;
- UNUSED(state);
-
- result = isc_stats_create(mctx, &stats, 4);
- assert_int_equal(result, ISC_R_SUCCESS);
+ isc_stats_create(mctx, &stats, 4);
assert_int_equal(isc_stats_ncounters(stats), 4);
/* Default all 0. */