aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/testbed_api.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-06-13 15:23:49 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-06-13 15:23:49 +0000
commite05cff45c3a0cc64197962ade380ac57093b6623 (patch)
treed2e81a2012db02f29926dc45fc172587783309f0 /src/testbed/testbed_api.c
parent2742cca3d2180b4f615c40609fccf10a806f05c8 (diff)
downloadgnunet-e05cff45c3a0cc64197962ade380ac57093b6623.tar.gz
gnunet-e05cff45c3a0cc64197962ade380ac57093b6623.zip
-handler for INIT messages in testbed server
Diffstat (limited to 'src/testbed/testbed_api.c')
-rw-r--r--src/testbed/testbed_api.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/testbed/testbed_api.c b/src/testbed/testbed_api.c
index f12ed64fc..7d86d5fd5 100644
--- a/src/testbed/testbed_api.c
+++ b/src/testbed/testbed_api.c
@@ -82,7 +82,7 @@ struct GNUNET_TESTBED_Controller
82 /** 82 /**
83 * The helper handle 83 * The helper handle
84 */ 84 */
85 struct GNUNET_HELPER_Handle *h; 85 struct GNUNET_HELPER_Handle *helper;
86 86
87 /** 87 /**
88 * The controller callback 88 * The controller callback
@@ -142,6 +142,7 @@ transmit_ready_notify (void *cls, size_t size, void *buf)
142 struct GNUNET_TESTBED_Controller *c = cls; 142 struct GNUNET_TESTBED_Controller *c = cls;
143 struct MessageQueue *mq_entry; 143 struct MessageQueue *mq_entry;
144 144
145 c->th = NULL;
145 mq_entry = c->mq_head; 146 mq_entry = c->mq_head;
146 GNUNET_assert (NULL != mq_entry); 147 GNUNET_assert (NULL != mq_entry);
147 GNUNET_assert (ntohs (mq_entry->msg->size) <= size); 148 GNUNET_assert (ntohs (mq_entry->msg->size) <= size);
@@ -277,9 +278,9 @@ GNUNET_TESTBED_controller_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
277 "gnunet-service-testbed", 278 "gnunet-service-testbed",
278 NULL}; 279 NULL};
279 controller = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Controller)); 280 controller = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Controller));
280 controller->h = GNUNET_TESTBED_host_run_ (host, binary_argv, 281 controller->helper = GNUNET_TESTBED_host_run_ (host, binary_argv,
281 &server_mst_cb, controller); 282 &server_mst_cb, controller);
282 if (NULL == controller->h) 283 if (NULL == controller->helper)
283 { 284 {
284 GNUNET_free (controller); 285 GNUNET_free (controller);
285 return NULL; 286 return NULL;
@@ -325,7 +326,20 @@ GNUNET_TESTBED_controller_configure_sharing (struct GNUNET_TESTBED_Controller *c
325void 326void
326GNUNET_TESTBED_controller_stop (struct GNUNET_TESTBED_Controller *controller) 327GNUNET_TESTBED_controller_stop (struct GNUNET_TESTBED_Controller *controller)
327{ 328{
328 GNUNET_break (0); 329 struct MessageQueue *mq_entry;
330
331 if (NULL != controller->th)
332 GNUNET_CLIENT_notify_transmit_ready_cancel (controller->th);
333 for (mq_entry = controller->mq_head; /* Clear the message queue */
334 NULL != mq_entry; mq_entry = controller->mq_head)
335 {
336 GNUNET_free (mq_entry->msg);
337 GNUNET_free (mq_entry);
338 }
339 GNUNET_CLIENT_disconnect (controller->client);
340 GNUNET_HELPER_stop (controller->helper);
341 GNUNET_CONFIGURATION_destroy (controller->cfg);
342 GNUNET_free (controller);
329} 343}
330 344
331 345