Move find_zone_keys() to lib/dns/zone_p.h

Rename find_zone_keys() to dns__zone_findkeys() and move it to
lib/dns/zone_p.h, so that it can be used in unit tests.  Add a comment
describing the purpose of this function.
This commit is contained in:
Michał Kępień 2018-03-13 14:06:10 +01:00
parent b1947cee82
commit d7143986b1
3 changed files with 28 additions and 16 deletions

View file

@ -7,6 +7,7 @@ EXPORTS
dns__rbt_checkproperties
dns__rbt_getheight
dns__rbtnode_getdistance
dns__zone_findkeys
dns__zone_loadpending
dns__zone_updatesigs

View file

@ -5973,10 +5973,16 @@ was_dumping(dns_zone_t *zone) {
return (dumping);
}
static isc_result_t
find_zone_keys(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver,
isc_stdtime_t now, isc_mem_t *mctx, unsigned int maxkeys,
dst_key_t **keys, unsigned int *nkeys)
/*%
* Find up to 'maxkeys' DNSSEC keys used for signing version 'ver' of database
* 'db' for zone 'zone' in its key directory, then load these keys into 'keys'.
* Only load the public part of a given key if it is not active at timestamp
* 'now'. Store the number of keys found in 'nkeys'.
*/
isc_result_t
dns__zone_findkeys(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver,
isc_stdtime_t now, isc_mem_t *mctx, unsigned int maxkeys,
dst_key_t **keys, unsigned int *nkeys)
{
isc_result_t result;
dns_dbnode_t *node = NULL;
@ -6443,11 +6449,11 @@ zone_resigninc(dns_zone_t *zone) {
isc_stdtime_get(&now);
result = find_zone_keys(zone, db, version, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
result = dns__zone_findkeys(zone, db, version, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
"zone_resigninc:find_zone_keys -> %s",
"zone_resigninc:dns__zone_findkeys -> %s",
dns_result_totext(result));
goto failure;
}
@ -7434,11 +7440,11 @@ zone_nsec3chain(dns_zone_t *zone) {
isc_stdtime_get(&now);
result = find_zone_keys(zone, db, version, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
result = dns__zone_findkeys(zone, db, version, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
"zone_nsec3chain:find_zone_keys -> %s",
"zone_nsec3chain:dns__zone_findkeys -> %s",
dns_result_totext(result));
goto failure;
}
@ -8318,11 +8324,11 @@ zone_sign(dns_zone_t *zone) {
isc_stdtime_get(&now);
result = find_zone_keys(zone, db, version, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
result = dns__zone_findkeys(zone, db, version, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
"zone_sign:find_zone_keys -> %s",
"zone_sign:dns__zone_findkeys -> %s",
dns_result_totext(result));
goto failure;
}
@ -17529,11 +17535,11 @@ sign_apex(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver,
unsigned int nkeys = 0, i;
dns_difftuple_t *tuple;
result = find_zone_keys(zone, db, ver, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
result = dns__zone_findkeys(zone, db, ver, now, zone->mctx,
DNS_MAXZONEKEYS, zone_keys, &nkeys);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
"sign_apex:find_zone_keys -> %s",
"sign_apex:dns__zone_findkeys -> %s",
dns_result_totext(result));
return (result);
}

View file

@ -26,6 +26,11 @@ typedef struct {
isc_boolean_t offline;
} dns__zonediff_t;
isc_result_t
dns__zone_findkeys(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver,
isc_stdtime_t now, isc_mem_t *mctx, unsigned int maxkeys,
dst_key_t **keys, unsigned int *nkeys);
isc_result_t
dns__zone_updatesigs(dns_diff_t *diff, dns_db_t *db, dns_dbversion_t *version,
dst_key_t *zone_keys[], unsigned int nkeys,