gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] 05/09: Fixed bug in logic freeing timedout QueueEntry.


From: gnunet
Subject: [gnunet] 05/09: Fixed bug in logic freeing timedout QueueEntry.
Date: Wed, 10 Jan 2024 12:00:02 +0100

This is an automated email from the git hooks/post-receive script.

t3sserakt pushed a commit to branch master
in repository gnunet.

commit 78b0a9aeb72e0b37989c8cf56534057f0d38ed9e
Author: t3sserakt <t3ss@posteo.de>
AuthorDate: Wed Jan 10 11:36:36 2024 +0100

    Fixed bug in logic freeing timedout QueueEntry.
---
 src/service/transport/gnunet-service-transport.c | 25 +++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/service/transport/gnunet-service-transport.c 
b/src/service/transport/gnunet-service-transport.c
index ab64ddf32..2bfde7f7f 100644
--- a/src/service/transport/gnunet-service-transport.c
+++ b/src/service/transport/gnunet-service-transport.c
@@ -4542,21 +4542,36 @@ free_timedout_queue_entry (void *cls)
   struct TransportClient *tc = cls;
   struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get ();
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "freeing timedout queue entries\n");
+
+  tc->details.communicator.free_queue_entry_task = NULL;
   for (struct Queue *queue = tc->details.communicator.queue_head; NULL != 
queue;
        queue = queue->next_client)
   {
-    for (struct QueueEntry *qep = queue->queue_head; NULL != qep;
-      qep = qep->next)
+    struct QueueEntry *qep = queue->queue_head;
+
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "checking QID %u for timedout queue entries\n",
+                queue->qid);
+    while (NULL != qep)
     {
-      struct GNUNET_TIME_Relative diff = GNUNET_TIME_absolute_get_difference 
(qep->creation_timestamp, now);
+      struct QueueEntry *pos = qep;
+      
+      qep = qep->next;
+      struct GNUNET_TIME_Relative diff = GNUNET_TIME_absolute_get_difference 
(pos->creation_timestamp, now);
+
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "diff to now %s \n",
+                  GNUNET_TIME_relative2s (diff, GNUNET_NO));
       if (GNUNET_TIME_relative_cmp (QUEUE_ENTRY_TIMEOUT, < , diff))
       {
         GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Freeing timed out QueueEntry with MID %" PRIu64
                 " and QID %u\n",
-                qep->mid,
+                pos->mid,
                 queue->qid);
-        free_queue_entry(qep, tc);
+        free_queue_entry(pos, tc);
       }
     }
   }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]