gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r35248 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r35248 - gnunet/src/transport
Date: Thu, 12 Feb 2015 21:12:28 +0100

Author: grothoff
Date: 2015-02-12 21:12:28 +0100 (Thu, 12 Feb 2015)
New Revision: 35248

Modified:
   gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
-fix leak on transmission error in combination with disconnect

Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2015-02-12 
19:52:47 UTC (rev 35247)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2015-02-12 
20:12:28 UTC (rev 35248)
@@ -1224,13 +1224,20 @@
 static void
 transmit_send_continuation (void *cls,
                             const struct GNUNET_PeerIdentity *receiver,
-                            int success, size_t size_payload, size_t physical)
+                            int success,
+                            size_t size_payload,
+                            size_t physical)
 {
   struct MessageQueue *mq = cls;
   struct NeighbourMapEntry *n;
 
   if (NULL == (n = lookup_neighbour (receiver)))
   {
+    if (NULL != mq->cont)
+      mq->cont (mq->cont_cls,
+                GNUNET_SYSERR /* not connected */,
+                size_payload,
+                0);
     GNUNET_free (mq);
     return; /* disconnect or other error while transmitting, can happen */
   }
@@ -1255,7 +1262,6 @@
     GNUNET_break (0);
   }
 
-
   GNUNET_break (size_payload == mq->message_buf_size);
   bytes_in_send_queue -= mq->message_buf_size;
   GNUNET_STATISTICS_set (GST_stats,
@@ -1327,9 +1333,9 @@
     if (timeout.rel_value_us > 0)
       break;
     GNUNET_STATISTICS_update (GST_stats,
-                             gettext_noop
-                             ("# messages timed out while in transport queue"),
-                             1, GNUNET_NO);
+                             gettext_noop ("# messages timed out while in 
transport queue"),
+                             1,
+                              GNUNET_NO);
     GNUNET_CONTAINER_DLL_remove (n->messages_head,
                                  n->messages_tail,
                                  mq);




reply via email to

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