gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r31256 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r31256 - gnunet/src/mesh
Date: Tue, 10 Dec 2013 13:24:29 +0100

Author: bartpolot
Date: 2013-12-10 13:24:28 +0100 (Tue, 10 Dec 2013)
New Revision: 31256

Modified:
   gnunet/src/mesh/gnunet-service-mesh_channel.c
Log:
- cancel queued transmission on channel destroy


Modified: gnunet/src/mesh/gnunet-service-mesh_channel.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_channel.c       2013-12-10 11:56:52 UTC 
(rev 31255)
+++ gnunet/src/mesh/gnunet-service-mesh_channel.c       2013-12-10 12:24:28 UTC 
(rev 31256)
@@ -927,6 +927,7 @@
     next = copy->next;
     GNUNET_CONTAINER_DLL_remove (rel->head_recv, rel->tail_recv, copy);
     LOG (GNUNET_ERROR_TYPE_DEBUG, " COPYFREE BATCH RECV %p\n", copy);
+    GNUNET_break (NULL == copy->q);
     GNUNET_free (copy);
   }
   for (copy = rel->head_sent; NULL != copy; copy = next)
@@ -934,6 +935,19 @@
     next = copy->next;
     GNUNET_CONTAINER_DLL_remove (rel->head_sent, rel->tail_sent, copy);
     LOG (GNUNET_ERROR_TYPE_DEBUG, " COPYFREE BATCH %p\n", copy);
+    if (NULL != copy->q)
+    {
+      if (NULL != copy->q->q)
+      {
+        GMT_cancel (copy->q->q);
+        /* ch_message_sent will free copy->q */
+      }
+      else
+      {
+        GNUNET_free (copy->q);
+        GNUNET_break (0);
+      }
+    }
     GNUNET_free (copy);
   }
   if (NULL != rel->uniq && NULL != rel->uniq->q)
@@ -1121,7 +1135,7 @@
   else if (NULL != rel->uniq)
   {
     GMT_cancel (rel->uniq->q);
-    /* ch_sent_message will free and NULL uniq */
+    /* ch_message_sent will free and NULL uniq */
   }
   else
   {




reply via email to

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