]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Refactor dnssec-ksr
authorMatthijs Mekking <matthijs@isc.org>
Tue, 15 Aug 2023 10:20:40 +0000 (12:20 +0200)
committerMatthijs Mekking <matthijs@isc.org>
Fri, 19 Apr 2024 08:41:04 +0000 (10:41 +0200)
Refactor some more, making the cleanup a generic function.

bin/dnssec/dnssec-ksr.c

index fd28d1bed7412f0f882423ee1627fc8cbfe9ded9..2c631cfe562a982ca0dba47a658ac6ba6020508a 100644 (file)
@@ -211,6 +211,17 @@ setcontext(ksr_ctx_t *ksr, dns_kasp_t *kasp) {
        ksr->ttlsig = dns_kasp_zonemaxttl(kasp, true);
 }
 
+static void
+cleanup(dns_dnsseckeylist_t *keys, dns_kasp_t *kasp) {
+       while (!ISC_LIST_EMPTY(*keys)) {
+               dns_dnsseckey_t *key = ISC_LIST_HEAD(*keys);
+               ISC_LIST_UNLINK(*keys, key, link);
+               dst_key_free(&key->key);
+               dns_dnsseckey_destroy(mctx, &key);
+       }
+       dns_kasp_detach(&kasp);
+}
+
 static void
 progress(int p) {
        char c = '*';
@@ -567,13 +578,7 @@ keygen(ksr_ctx_t *ksr) {
                fatal("policy '%s' has no zsks", ksr->policy);
        }
        /* Cleanup */
-       while (!ISC_LIST_EMPTY(keys)) {
-               dns_dnsseckey_t *key = ISC_LIST_HEAD(keys);
-               ISC_LIST_UNLINK(keys, key, link);
-               dst_key_free(&key->key);
-               dns_dnsseckey_destroy(mctx, &key);
-       }
-       dns_kasp_detach(&kasp);
+       cleanup(&keys, kasp);
 }
 
 static void
@@ -630,12 +635,7 @@ request(ksr_ctx_t *ksr) {
                inception = next;
        }
        /* Cleanup */
-       while (!ISC_LIST_EMPTY(keys)) {
-               dns_dnsseckey_t *key = ISC_LIST_HEAD(keys);
-               ISC_LIST_UNLINK(keys, key, link);
-               dst_key_free(&key->key);
-               dns_dnsseckey_destroy(mctx, &key);
-       }
+       cleanup(&keys, kasp);
 }
 
 int