mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-08 22:32:07 -04:00
Refactor isc_stats_create() and its downstream users to return void
The isc_stats_create() can no longer return anything else than ISC_R_SUCCESS. Refactor isc_stats_create() and its variants in libdns, libns and named to just return void.
This commit is contained in:
parent
6a6f2e58e9
commit
5321c474ea
17 changed files with 79 additions and 218 deletions
|
|
@ -2167,11 +2167,11 @@ run_server(void *arg) {
|
|||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -1791,27 +1791,20 @@ cleanup:
|
|||
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 *
|
||||
|
|
@ -1963,7 +1956,7 @@ dns64_reverse(dns_view_t *view, isc_mem_t *mctx, isc_netaddr_t *na,
|
|||
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,
|
||||
|
|
@ -3548,7 +3541,7 @@ create_empty_zone(dns_zone_t *pzone, dns_name_t *name, dns_view_t *view,
|
|||
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));
|
||||
|
|
@ -4711,12 +4704,11 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, cfg_obj_t *config,
|
|||
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);
|
||||
|
||||
|
|
@ -6931,7 +6923,7 @@ add_keydata_zone(dns_view_t *view, const char *directory, isc_mem_t *mctx) {
|
|||
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);
|
||||
|
|
@ -10170,18 +10162,15 @@ named_server_create(isc_mem_t *mctx, named_server_t **serverp) {
|
|||
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");
|
||||
|
|
|
|||
|
|
@ -1174,10 +1174,9 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -1939,7 +1939,7 @@ destroy(dns_adb_t *adb) {
|
|||
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);
|
||||
|
|
@ -1964,7 +1964,6 @@ isc_result_t
|
|||
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);
|
||||
|
|
@ -2003,10 +2002,7 @@ dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_loopmgr_t *loopmgr,
|
|||
|
||||
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);
|
||||
|
|
@ -2017,25 +2013,6 @@ dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_loopmgr_t *loopmgr,
|
|||
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
|
||||
|
|
|
|||
|
|
@ -142,11 +142,7 @@ dns_cache_create(isc_loopmgr_t *loopmgr, dns_rdataclass_t rdclass,
|
|||
|
||||
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
|
||||
|
|
@ -175,7 +171,6 @@ cleanup_db:
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ dns_dt_create(isc_mem_t *mctx, dns_dtmode_t mode, const char *path,
|
|||
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) {
|
||||
|
|
|
|||
|
|
@ -258,7 +258,7 @@ typedef void (*dns_rcodestats_dumper_t)(dns_rcode_t, uint64_t, void *);
|
|||
|
||||
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
|
||||
|
|
@ -270,14 +270,9 @@ dns_generalstats_create(isc_mem_t *mctx, dns_stats_t **statsp, int ncounters);
|
|||
*\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.
|
||||
|
|
@ -286,14 +281,9 @@ dns_rdatatypestats_create(isc_mem_t *mctx, dns_stats_t **statsp);
|
|||
*\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.
|
||||
|
|
@ -302,14 +292,9 @@ dns_rdatasetstats_create(isc_mem_t *mctx, dns_stats_t **statsp);
|
|||
*\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.
|
||||
|
|
@ -318,14 +303,9 @@ dns_opcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp);
|
|||
*\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.
|
||||
|
|
@ -334,14 +314,9 @@ dns_rcodestats_create(isc_mem_t *mctx, dns_stats_t **statsp);
|
|||
*\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.
|
||||
|
|
@ -350,11 +325,6 @@ dns_dnssecsignstats_create(isc_mem_t *mctx, dns_stats_t **statsp);
|
|||
*\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
|
||||
|
|
|
|||
|
|
@ -3800,10 +3800,7 @@ dns__rbtdb_create(isc_mem_t *mctx, const dns_name_t *origin, dns_dbtype_t type,
|
|||
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));
|
||||
|
|
@ -3955,10 +3952,6 @@ dns__rbtdb_create(isc_mem_t *mctx, const dns_name_t *origin, dns_dbtype_t type,
|
|||
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -164,44 +164,31 @@ dns_stats_detach(dns_stats_t **statsp) {
|
|||
/*%
|
||||
* 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);
|
||||
|
||||
|
|
@ -209,34 +196,34 @@ dns_rdatatypestats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
|
|||
* 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);
|
||||
|
||||
|
|
@ -244,9 +231,8 @@ dns_dnssecsignstats_create(isc_mem_t *mctx, dns_stats_t **statsp) {
|
|||
* 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);
|
||||
}
|
||||
|
||||
/*%
|
||||
|
|
|
|||
|
|
@ -1082,7 +1082,6 @@ inc_stats(dns_zone_t *zone, isc_statscounter_t counter) {
|
|||
|
||||
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;
|
||||
|
||||
|
|
@ -1157,11 +1156,8 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx, unsigned int tid) {
|
|||
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;
|
||||
|
||||
|
|
@ -1170,15 +1166,6 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx, unsigned int tid) {
|
|||
|
||||
*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
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ ISC_LANG_BEGINDECLS
|
|||
*/
|
||||
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
|
||||
|
|
@ -125,11 +125,6 @@ isc_stats_create(isc_mem_t *mctx, isc_stats_t **statsp, int ncounters);
|
|||
*\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
|
||||
|
|
|
|||
|
|
@ -37,29 +37,6 @@ struct isc_stats {
|
|||
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));
|
||||
|
|
@ -94,11 +71,23 @@ isc_stats_ncounters(isc_stats_t *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
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
|
||||
/*! \file include/ns/stats.h */
|
||||
|
||||
#include <isc/mem.h>
|
||||
#include <isc/stats.h>
|
||||
|
||||
#include <ns/types.h>
|
||||
|
||||
/*%
|
||||
|
|
@ -118,7 +121,7 @@ ns_stats_attach(ns_stats_t *stats, ns_stats_t **statsp);
|
|||
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
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ isc_result_t
|
|||
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);
|
||||
|
||||
|
|
@ -65,13 +64,13 @@ ns_server_create(isc_mem_t *mctx, ns_matchview_t matchingview,
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -58,34 +58,21 @@ ns_stats_detach(ns_stats_t **statsp) {
|
|||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
/*%
|
||||
|
|
|
|||
|
|
@ -188,16 +188,12 @@ verify_ancient_counters(dns_rdatastatstype_t which, uint64_t value, void *arg) {
|
|||
* 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++) {
|
||||
|
|
|
|||
|
|
@ -32,12 +32,8 @@
|
|||
/* 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. */
|
||||
|
|
|
|||
Loading…
Reference in a new issue