From 1ef5facddf2579c4a7077fb8bc7cb828a09df69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Va=C5=A1ek?= Date: Mon, 18 May 2026 22:35:07 +0200 Subject: [PATCH] kaspdb: make deletion timestamp a part of a trash-key record --- src/knot/dnssec/kasp/kasp_db.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/knot/dnssec/kasp/kasp_db.c b/src/knot/dnssec/kasp/kasp_db.c index e8136d039..a82235ef8 100644 --- a/src/knot/dnssec/kasp/kasp_db.c +++ b/src/knot/dnssec/kasp/kasp_db.c @@ -222,11 +222,14 @@ static bool params_deserialize(const MDB_val *val, key_params_t *params) return false; } -static MDB_val trash_serialize(const key_params_t *params, uint64_t expir) +static MDB_val trash_serialize(const key_params_t *params, + uint64_t deleted, uint64_t expires) { uint8_t flags = flags_serialize(params); - return knot_lmdb_make_key("LHBB", expir, params->keytag, params->algorithm, flags); + // expires must go first because of faster checking/deserialization. + return knot_lmdb_make_key("LLHBB", expires, deleted, + params->keytag, params->algorithm, flags); } static key_params_t *txn2params(knot_lmdb_txn_t *txn) @@ -318,9 +321,9 @@ static int make_trash_key(knot_lmdb_txn_t *txn, MDB_val *key, MDB_val *val, uint return KNOT_EMALF; } free(params.public_key.data); - uint64_t expir = (uint64_t)knot_time() + delay; + uint64_t now = knot_time(); MDB_val nkey = make_key_str(KASPDBKEY_TRASH, dname, str); - MDB_val nval = trash_serialize(¶ms, expir); + MDB_val nval = trash_serialize(¶ms, now, now + delay); knot_lmdb_insert(txn, &nkey, &nval); ret = txn->ret; free(nkey.mv_data);