fix #7099
This commit is contained in:
parent
ae2ce4aaee
commit
1caeaec257
@ -1 +1 @@
|
|||||||
Subproject commit 597e273cc73122ba5cd0023f37b43b4f3784fe0c
|
Subproject commit 478c0bd987c8c1135e5691c31abaa3f4ddce6f24
|
@ -655,10 +655,16 @@ create_key (void)
|
|||||||
static struct GNUNET_TIME_Absolute
|
static struct GNUNET_TIME_Absolute
|
||||||
key_action_time (void)
|
key_action_time (void)
|
||||||
{
|
{
|
||||||
if (NULL == keys_head)
|
struct Key *nxt;
|
||||||
|
|
||||||
|
nxt = keys_head;
|
||||||
|
while ( (NULL != nxt) &&
|
||||||
|
(nxt->purge) )
|
||||||
|
nxt = nxt->next;
|
||||||
|
if (NULL == nxt)
|
||||||
return GNUNET_TIME_UNIT_ZERO_ABS;
|
return GNUNET_TIME_UNIT_ZERO_ABS;
|
||||||
return GNUNET_TIME_absolute_min (
|
return GNUNET_TIME_absolute_min (
|
||||||
GNUNET_TIME_absolute_add (keys_head->anchor,
|
GNUNET_TIME_absolute_add (nxt->anchor,
|
||||||
duration),
|
duration),
|
||||||
GNUNET_TIME_absolute_subtract (
|
GNUNET_TIME_absolute_subtract (
|
||||||
GNUNET_TIME_absolute_subtract (
|
GNUNET_TIME_absolute_subtract (
|
||||||
@ -678,6 +684,7 @@ static void
|
|||||||
update_keys (void *cls)
|
update_keys (void *cls)
|
||||||
{
|
{
|
||||||
bool wake = false;
|
bool wake = false;
|
||||||
|
struct Key *nxt;
|
||||||
|
|
||||||
(void) cls;
|
(void) cls;
|
||||||
keygen_task = NULL;
|
keygen_task = NULL;
|
||||||
@ -707,10 +714,11 @@ update_keys (void *cls)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
nxt = keys_head;
|
||||||
/* remove expired keys */
|
/* remove expired keys */
|
||||||
while ( (NULL != keys_head) &&
|
while ( (NULL != nxt) &&
|
||||||
GNUNET_TIME_absolute_is_past (
|
GNUNET_TIME_absolute_is_past (
|
||||||
GNUNET_TIME_absolute_add (keys_head->anchor,
|
GNUNET_TIME_absolute_add (nxt->anchor,
|
||||||
duration)))
|
duration)))
|
||||||
{
|
{
|
||||||
if (! wake)
|
if (! wake)
|
||||||
@ -720,13 +728,14 @@ update_keys (void *cls)
|
|||||||
}
|
}
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Removing past key %s (expired %s ago)\n",
|
"Removing past key %s (expired %s ago)\n",
|
||||||
keys_head->filename,
|
nxt->filename,
|
||||||
GNUNET_STRINGS_relative_time_to_string (
|
GNUNET_STRINGS_relative_time_to_string (
|
||||||
GNUNET_TIME_absolute_get_duration (
|
GNUNET_TIME_absolute_get_duration (
|
||||||
GNUNET_TIME_absolute_add (keys_head->anchor,
|
GNUNET_TIME_absolute_add (nxt->anchor,
|
||||||
duration)),
|
duration)),
|
||||||
GNUNET_YES));
|
GNUNET_YES));
|
||||||
purge_key (keys_head);
|
purge_key (nxt);
|
||||||
|
nxt = nxt->next;
|
||||||
}
|
}
|
||||||
GNUNET_assert (0 == pthread_mutex_unlock (&keys_lock));
|
GNUNET_assert (0 == pthread_mutex_unlock (&keys_lock));
|
||||||
if (wake)
|
if (wake)
|
||||||
|
Loading…
Reference in New Issue
Block a user