gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r24679 - gnunet/src/testbed


From: gnunet
Subject: [GNUnet-SVN] r24679 - gnunet/src/testbed
Date: Fri, 2 Nov 2012 16:52:22 +0100

Author: harsha
Date: 2012-11-02 16:52:22 +0100 (Fri, 02 Nov 2012)
New Revision: 24679

Modified:
   gnunet/src/testbed/gnunet-service-testbed.c
Log:
fix memleak

Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2012-11-02 15:14:12 UTC (rev 
24678)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2012-11-02 15:52:22 UTC (rev 
24679)
@@ -1803,6 +1803,7 @@
     return;
   }
   master_context = GNUNET_malloc (sizeof (struct Context));
+  GNUNET_SERVER_client_keep (client);
   master_context->client = client;
   master_context->host_id = ntohl (msg->host_id);
   master_context->master_ip = GNUNET_strdup (controller_hostname);
@@ -1815,7 +1816,6 @@
                                           NULL,
                                           0);
   host_list_add (host);
-  GNUNET_SERVER_client_keep (client);
   LOG_DEBUG ("Created master context with host ID: %u\n",
              master_context->host_id);
   GNUNET_SERVER_receive_done (client, GNUNET_OK);
@@ -3680,6 +3680,7 @@
   struct OverlayConnectContext *occ;
   struct RequestOverlayConnectContext *rocc;
   struct ForwardedOperationContext *fopc;
+  struct MessageQueue *mq_entry;
   uint32_t id;
 
   shutdown_task_id = GNUNET_SCHEDULER_NO_TASK;
@@ -3795,9 +3796,19 @@
     GNUNET_free_non_null (master_context->master_ip);
     if (NULL != master_context->system)
       GNUNET_TESTING_system_destroy (master_context->system, GNUNET_YES);
+    GNUNET_SERVER_client_drop (master_context->client);
     GNUNET_free (master_context);
     master_context = NULL;
   }
+  if (NULL != transmit_handle)
+    GNUNET_SERVER_notify_transmit_ready_cancel (transmit_handle);  
+  while (NULL != (mq_entry = mq_head))
+  {
+    GNUNET_free (mq_entry->msg);
+    GNUNET_SERVER_client_drop (mq_entry->client);
+    GNUNET_CONTAINER_DLL_remove (mq_head, mq_tail, mq_entry);    
+    GNUNET_free (mq_entry);
+  }
   GNUNET_free_non_null (hostname);
   GNUNET_CONFIGURATION_destroy (our_config);
 }




reply via email to

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