]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
nsec3param: set TTL to the same like for NSEC3...
authorLibor Peltan <libor.peltan@nic.cz>
Mon, 28 Jun 2021 16:35:38 +0000 (18:35 +0200)
committerLibor Peltan <libor.peltan@nic.cz>
Mon, 28 Jun 2021 16:35:38 +0000 (18:35 +0200)
...the change does not take effect until NSEC3PARAM
is updated for other reason (eg resalt)

src/knot/dnssec/nsec3-chain.c
src/knot/dnssec/zone-nsec.c
src/knot/dnssec/zone-nsec.h

index fa3d238fe20702e28c8ddee0b8165ac504b043c1..b3dc480100f0064b965171bde4c37d961f2f649a 100644 (file)
@@ -790,7 +790,7 @@ int knot_nsec3_fix_chain(zone_update_t *update,
 
        // ensure that the salt has not changed
        if (!knot_nsec3param_uptodate(update->new_cont, params)) {
-               int ret = knot_nsec3param_update(update, params);
+               int ret = knot_nsec3param_update(update, params, ttl);
                if (ret != KNOT_EOK) {
                        return ret;
                }
index 5e6f1e55fea13aaa6b904815ba0b2bcb54a8f53a..07d6a5d96b49453d19ea736f76e768090be26d5b 100644 (file)
@@ -236,14 +236,15 @@ static int set_nsec3param(knot_rrset_t *rrset, const dnssec_nsec3_params_t *para
 }
 
 static int add_nsec3param(zone_update_t *update,
-                          const dnssec_nsec3_params_t *params)
+                          const dnssec_nsec3_params_t *params,
+                          uint32_t ttl)
 {
        assert(update);
        assert(params);
 
        knot_rrset_t *rrset = NULL;
        rrset = knot_rrset_new(update->new_cont->apex->owner, KNOT_RRTYPE_NSEC3PARAM,
-                              KNOT_CLASS_IN, 0, NULL);
+                              KNOT_CLASS_IN, ttl, NULL);
        if (rrset == NULL) {
                return KNOT_ENOMEM;
        }
@@ -268,7 +269,8 @@ bool knot_nsec3param_uptodate(const zone_contents_t *zone,
 }
 
 int knot_nsec3param_update(zone_update_t *update,
-                           const dnssec_nsec3_params_t *params)
+                           const dnssec_nsec3_params_t *params,
+                           uint32_t ttl)
 {
        assert(update);
        assert(params);
@@ -284,7 +286,7 @@ int knot_nsec3param_update(zone_update_t *update,
        }
 
        if (params->algorithm != 0 && !valid) {
-               return add_nsec3param(update, params);
+               return add_nsec3param(update, params, ttl);
        }
 
        return KNOT_EOK;
@@ -336,7 +338,7 @@ int knot_zone_create_nsec_chain(zone_update_t *update, const kdnssec_ctx_t *ctx)
 
        dnssec_nsec3_params_t params = nsec3param_init(ctx->policy, ctx->zone);
 
-       int ret = knot_nsec3param_update(update, &params);
+       int ret = knot_nsec3param_update(update, &params, nsec_ttl);
        if (ret != KNOT_EOK) {
                return ret;
        }
index ad7d384151c55c1d7cb2c29a5a32c625cf3cc71e..c43b658428ba27c8b083e37138af53333929a3cd 100644 (file)
@@ -119,11 +119,13 @@ bool knot_nsec3param_uptodate(const zone_contents_t *zone,
  *
  * \param update  Zone to be updated.
  * \param params  NSEC3 params.
+ * \param ttl     Desired TTL for NSEC3PARAM.
  *
  * \return KNOT_E*
  */
 int knot_nsec3param_update(zone_update_t *update,
-                           const dnssec_nsec3_params_t *params);
+                           const dnssec_nsec3_params_t *params,
+                           uint32_t ttl);
 
 /*!
  * \brief Create NSEC or NSEC3 chain in the zone.