static const char *keystatestrings[4] = { "HIDDEN", "RUMOURED", "OMNIPRESENT",
"UNRETENTIVE" };
+static void
+log_key_overflow(dst_key_t *key, const char *what) {
+ char keystr[DST_KEY_FORMATSIZE];
+ dst_key_format(key, keystr, sizeof(keystr));
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_DNSSEC, DNS_LOGMODULE_DNSSEC,
+ ISC_LOG_WARNING,
+ "keymgr: DNSKEY %s (%s) calculation overflowed", keystr,
+ what);
+}
+
/*
* Print key role.
*
}
if (ISC_OVERFLOW_ADD(active, klifetime, &retire)) {
+ log_key_overflow(key->key, "retire");
retire = UINT32_MAX;
}
dst_key_settime(key->key, DST_TIME_INACTIVE, retire);
uint32_t inactive;
(void)dst_key_gettime(key->key, DST_TIME_ACTIVATE, &a);
if (ISC_OVERFLOW_ADD(a, lifetime, &inactive)) {
+ log_key_overflow(key->key, "inactive");
inactive = UINT32_MAX;
}
dst_key_settime(key->key, DST_TIME_INACTIVE, inactive);
uint32_t inactive;
if (ISC_OVERFLOW_ADD(active, lifetime, &inactive)) {
+ log_key_overflow(new_key->key, "inactive");
inactive = UINT32_MAX;
}
dst_key_settime(new_key->key, DST_TIME_INACTIVE, inactive);