commit 61d5770feef45b56a311461ececfa407f4e409e3
parent 15e55e5dc11a3c0c4ae5c221607156a021a1fdce
Author: Jacki <jacki@thejackimonster.de>
Date: Sun, 16 Jun 2024 17:24:59 +0200
Fix iteration of discourse contacts
Signed-off-by: Jacki <jacki@thejackimonster.de>
Diffstat:
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/gnunet_chat_discourse.c b/src/gnunet_chat_discourse.c
@@ -79,7 +79,12 @@ discourse_subscribe (struct GNUNET_CHAT_Discourse *discourse,
{
GNUNET_assert((discourse) && (contact));
- if (GNUNET_TIME_absolute_cmp(timestamp, <, GNUNET_TIME_absolute_get()))
+ const struct GNUNET_TIME_Absolute end = GNUNET_TIME_absolute_add(
+ timestamp,
+ time
+ );
+
+ if (GNUNET_TIME_absolute_cmp(end, <, GNUNET_TIME_absolute_get()))
return;
struct GNUNET_CHAT_DiscourseSubscription *sub;
@@ -107,10 +112,10 @@ discourse_subscribe (struct GNUNET_CHAT_Discourse *discourse,
GNUNET_SCHEDULER_cancel(sub->task);
sub->start = timestamp;
- sub->end = GNUNET_TIME_absolute_add(timestamp, time);
+ sub->end = end;
sub->task = GNUNET_SCHEDULER_add_at(
- sub->end,
+ end,
discourse_remove_subscription,
sub
);