[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r30728 - gnunet/src/mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r30728 - gnunet/src/mesh |
Date: |
Fri, 15 Nov 2013 16:11:37 +0100 |
Author: bartpolot
Date: 2013-11-15 16:11:37 +0100 (Fri, 15 Nov 2013)
New Revision: 30728
Modified:
gnunet/src/mesh/gnunet-service-mesh_connection.c
gnunet/src/mesh/gnunet-service-mesh_connection.h
Log:
- dont use a cancel handle if cont is NULL, fix potential memleak
Modified: gnunet/src/mesh/gnunet-service-mesh_connection.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_connection.c 2013-11-15 14:15:18 UTC
(rev 30727)
+++ gnunet/src/mesh/gnunet-service-mesh_connection.c 2013-11-15 15:11:37 UTC
(rev 30728)
@@ -216,8 +216,19 @@
*/
struct MeshConnectionQueue
{
+ /**
+ * Peer queue handle, to cancel if necessary.
+ */
struct MeshPeerQueue *q;
+
+ /**
+ * Continuation to call once sent.
+ */
GMC_sent cont;
+
+ /**
+ * Closure for @c cont.
+ */
void *cont_cls;
};
@@ -2389,7 +2400,8 @@
* @param cont Continuation called once message is sent. Can be NULL.
* @param cont_cls Closure for @c cont.
*
- * @return Handle to cancel the message before it's sent. NULL on error.
+ * @return Handle to cancel the message before it's sent.
+ * NULL on error or if @c cont is NULL.
* Invalid on @c cont call.
*/
struct MeshConnectionQueue *
@@ -2505,6 +2517,13 @@
LOG (GNUNET_ERROR_TYPE_DEBUG, " C_P+ %p %u\n", c, c->pending_messages);
c->pending_messages++;
+ if (NULL == cont)
+ {
+ (void) GMP_queue_add (get_hop (c, fwd), data, type, size, c, fwd,
+ &message_sent, q);
+ return NULL;
+ }
+
q = GNUNET_new (struct MeshConnectionQueue);
q->q = GMP_queue_add (get_hop (c, fwd), data, type, size, c, fwd,
&message_sent, q);
Modified: gnunet/src/mesh/gnunet-service-mesh_connection.h
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_connection.h 2013-11-15 14:15:18 UTC
(rev 30727)
+++ gnunet/src/mesh/gnunet-service-mesh_connection.h 2013-11-15 15:11:37 UTC
(rev 30728)
@@ -454,7 +454,8 @@
* @param cont Continuation called once message is sent. Can be NULL.
* @param cont_cls Closure for @c cont.
*
- * @return Handle to cancel the message before it's sent. NULL on error.
+ * @return Handle to cancel the message before it's sent.
+ * NULL on error or if @c cont is NULL.
* Invalid on @c cont call.
*/
struct MeshConnectionQueue *
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30728 - gnunet/src/mesh,
gnunet <=