commit 80c83d164699ae05f2837275b3a99cb963f00e7a
parent 36f1c9b91bcb1e5916b06aca632d189cc7c657ea
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 5 Jul 2026 23:17:57 +0200
handle special case of donau without signing keys nicely
Diffstat:
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/backend/taler-merchant-donaukeyupdate.c b/src/backend/taler-merchant-donaukeyupdate.c
@@ -485,15 +485,18 @@ donau_cert_cb (
break;
}
+ DONAU_keys_decref (d->keys);
d->keys = keys;
/* Reset back-off */
d->retry_delay = DONAU_MAXFREQ;
/* limit retry */
d->first_retry = first_retry;
- /* FIXME: Might be good to reference some key_data_expiration and not first sign_key*/
- n = GNUNET_TIME_absolute_max (d->first_retry,
- keys->sign_keys[0].expire_sign.abs_time);
+ if (0 < keys->num_sign_keys)
+ n = GNUNET_TIME_absolute_max (d->first_retry,
+ keys->sign_keys[0].expire_sign.abs_time);
+ else
+ n = d->first_retry;
if (NULL != d->retry_task)
GNUNET_SCHEDULER_cancel (d->retry_task);
d->retry_task = GNUNET_SCHEDULER_add_at (n,
@@ -979,9 +982,12 @@ accept_donau (
{
struct GNUNET_TIME_Absolute n;
- n = GNUNET_TIME_absolute_min (
- d->first_retry,
- d->keys->sign_keys[0].expire_sign.abs_time);
+ if (0 < d->keys->num_sign_keys)
+ n = GNUNET_TIME_absolute_min (
+ d->first_retry,
+ d->keys->sign_keys[0].expire_sign.abs_time);
+ else
+ n = d->first_retry;
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Will download %skeys in %s\n",
donau_url,