ISC_XMLCHAR "dnssec-sign"));
dumparg.result = ISC_R_SUCCESS;
- dns_dnssecsignstats_dump(dnssecsignstats, false,
- dnssecsignstat_dump, &dumparg,
- 0);
+ dns_dnssecsignstats_dump(
+ dnssecsignstats, dns_dnssecsignstats_sign,
+ dnssecsignstat_dump, &dumparg, 0);
if (dumparg.result != ISC_R_SUCCESS) {
goto error;
}
ISC_XMLCHAR "dnssec-refresh"));
dumparg.result = ISC_R_SUCCESS;
- dns_dnssecsignstats_dump(dnssecsignstats, true,
- dnssecsignstat_dump, &dumparg,
- 0);
+ dns_dnssecsignstats_dump(
+ dnssecsignstats, dns_dnssecsignstats_refresh,
+ dnssecsignstat_dump, &dumparg, 0);
if (dumparg.result != ISC_R_SUCCESS) {
goto error;
}
dumparg.type = isc_statsformat_json;
dumparg.arg = counters;
dumparg.result = ISC_R_SUCCESS;
- dns_dnssecsignstats_dump(dnssecsignstats, false,
- dnssecsignstat_dump, &dumparg,
- 0);
+ dns_dnssecsignstats_dump(
+ dnssecsignstats, dns_dnssecsignstats_sign,
+ dnssecsignstat_dump, &dumparg, 0);
if (dumparg.result != ISC_R_SUCCESS) {
json_object_put(counters);
goto error;
dumparg.type = isc_statsformat_json;
dumparg.arg = counters;
dumparg.result = ISC_R_SUCCESS;
- dns_dnssecsignstats_dump(dnssecsignstats, true,
- dnssecsignstat_dump, &dumparg,
- 0);
+ dns_dnssecsignstats_dump(
+ dnssecsignstats, dns_dnssecsignstats_refresh,
+ dnssecsignstat_dump, &dumparg, 0);
if (dumparg.result != ISC_R_SUCCESS) {
json_object_put(counters);
goto error;
#define DNS_RDATASTATSTYPE_ATTR(type) ((type) >> 16)
#define DNS_RDATASTATSTYPE_VALUE(b, a) (((a) << 16) | (b))
+/*%
+ * Types of DNSSEC sign statistics operations.
+ */
+typedef enum {
+ dns_dnssecsignstats_sign = 1,
+ dns_dnssecsignstats_refresh = 2
+} dnssecsignstats_type_t;
+
/*%<
* Types of dump callbacks.
*/
void
dns_dnssecsignstats_increment(dns_stats_t *stats, dns_keytag_t id, uint8_t alg,
- bool refresh);
+ dnssecsignstats_type_t operation);
/*%<
- * Increment the statistics counter for the DNSKEY 'id'. If 'refresh' is set
- * to true, update the refresh counter, otherwise update the sign counter.
+ * Increment the statistics counter for the DNSKEY 'id'. The 'operation'
+ * determines what counter is incremented.
*
* Requires:
*\li 'stats' is a valid dns_stats_t created by dns_dnssecsignstats_create().
*/
void
-dns_dnssecsignstats_dump(dns_stats_t *stats, bool refresh,
+dns_dnssecsignstats_dump(dns_stats_t *stats, dnssecsignstats_type_t operation,
dns_dnssecsignstats_dumper_t dump_fn, void *arg,
unsigned int options);
/*%<
static int dnssec_max_keys = 4;
/* Key id mask */
#define DNSSECSIGNSTATS_KEY_ID_MASK 0x0000FFFF
-/* DNSSEC sign operation (sign or refresh) */
-#define DNSSECSIGNSTATS_SIGN 1
-#define DNSSECSIGNSTATS_REFRESH 2
struct dns_stats {
unsigned int magic;
void
dns_dnssecsignstats_increment(dns_stats_t *stats, dns_keytag_t id, uint8_t alg,
- bool refresh) {
- isc_statscounter_t operation = DNSSECSIGNSTATS_SIGN;
+ dnssecsignstats_type_t operation) {
uint32_t kval;
REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_dnssec);
/* Shift algorithm in front of key tag, which is 16 bits */
kval = (uint32_t)(alg << 16 | id);
- /* What operation are we counting? */
- if (refresh) {
- operation = DNSSECSIGNSTATS_REFRESH;
- }
-
/* Look up correct counter. */
for (int i = 0; i < dnssec_max_keys; i++) {
int idx = 3 * i;
for (int i = 1; i < dnssec_max_keys; i++) {
int gidx = 3 * i; /* Get key (get index, gidx) */
uint32_t keyv = isc_stats_get_counter(stats->counters, gidx);
- uint32_t sign = isc_stats_get_counter(stats->counters,
- (gidx + 1));
- uint32_t refr = isc_stats_get_counter(stats->counters,
- (gidx + 2));
+ uint32_t sign = isc_stats_get_counter(
+ stats->counters, (gidx + dns_dnssecsignstats_sign));
+ uint32_t refr = isc_stats_get_counter(
+ stats->counters, (gidx + dns_dnssecsignstats_refresh));
- int sidx = gidx - 3; /* Set key, (set index, sidx) */
+ int sidx = 3 * (i - 1); /* Set key, (set index, sidx) */
isc_stats_set(stats->counters, keyv, sidx);
- isc_stats_set(stats->counters, sign, (sidx + 1));
- isc_stats_set(stats->counters, refr, (sidx + 2));
+ isc_stats_set(stats->counters, sign,
+ (sidx + dns_dnssecsignstats_sign));
+ isc_stats_set(stats->counters, refr,
+ (sidx + dns_dnssecsignstats_refresh));
}
/* Reset counters for new key (new index, nidx). */
int nidx = 3 * (dnssec_max_keys - 1);
isc_stats_set(stats->counters, kval, nidx);
- isc_stats_set(stats->counters, 0, (nidx + 1));
- isc_stats_set(stats->counters, 0, (nidx + 2));
+ isc_stats_set(stats->counters, 0, (nidx + dns_dnssecsignstats_sign));
+ isc_stats_set(stats->counters, 0, (nidx + dns_dnssecsignstats_refresh));
/* And increment the counter for the given operation. */
isc_stats_increment(stats->counters, (nidx + operation));
}
static void
-dnssec_statsdump(isc_stats_t *stats, bool refresh, isc_stats_dumper_t dump_fn,
- void *arg, unsigned int options) {
+dnssec_statsdump(isc_stats_t *stats, dnssecsignstats_type_t operation,
+ isc_stats_dumper_t dump_fn, void *arg, unsigned int options) {
int i;
- isc_statscounter_t operation = DNSSECSIGNSTATS_SIGN;
-
- if (refresh) {
- operation = DNSSECSIGNSTATS_REFRESH;
- }
for (i = 0; i < dnssec_max_keys; i++) {
int idx = 3 * i;
}
void
-dns_dnssecsignstats_dump(dns_stats_t *stats, bool refresh,
+dns_dnssecsignstats_dump(dns_stats_t *stats, dnssecsignstats_type_t operation,
dns_dnssecsignstats_dumper_t dump_fn, void *arg0,
unsigned int options) {
dnssecsigndumparg_t arg;
arg.fn = dump_fn;
arg.arg = arg0;
- dnssec_statsdump(stats->counters, refresh, dnssec_dumpcb, &arg,
+ dnssec_statsdump(stats->counters, operation, dnssec_dumpcb, &arg,
options);
}
added_sig = true;
/* Update DNSSEC sign statistics. */
if (dnssecsignstats != NULL) {
- dns_dnssecsignstats_increment(
- dnssecsignstats, ID(keys[i]),
- (uint8_t)ALG(keys[i]), false);
+ dns_dnssecsignstats_increment(dnssecsignstats,
+ ID(keys[i]),
+ (uint8_t)ALG(keys[i]),
+ dns_dnssecsignstats_sign);
}
}
if (!added_sig) {
dnssecsignstats = dns_zone_getdnssecsignstats(zone);
if (dnssecsignstats != NULL) {
/* Generated a new signature. */
- dns_dnssecsignstats_increment(
- dnssecsignstats, ID(keys[i]),
- (uint8_t)ALG(keys[i]), false);
+ dns_dnssecsignstats_increment(dnssecsignstats,
+ ID(keys[i]),
+ (uint8_t)ALG(keys[i]),
+ dns_dnssecsignstats_sign);
/* This is a refresh. */
dns_dnssecsignstats_increment(
dnssecsignstats, ID(keys[i]),
- (uint8_t)ALG(keys[i]), true);
+ (uint8_t)ALG(keys[i]),
+ dns_dnssecsignstats_refresh);
}
}
if (dnssecsignstats != NULL) {
/* Generated a new signature. */
dns_dnssecsignstats_increment(dnssecsignstats, ID(key),
- ALG(key), false);
+ ALG(key),
+ dns_dnssecsignstats_sign);
/* This is a refresh. */
- dns_dnssecsignstats_increment(dnssecsignstats, ID(key),
- ALG(key), true);
+ dns_dnssecsignstats_increment(
+ dnssecsignstats, ID(key), ALG(key),
+ dns_dnssecsignstats_refresh);
}
(*signatures)--;