aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api_controllerlink.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2013-02-12 10:05:40 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2013-02-12 10:05:40 +0000
commitffec951065ab72b166947788acc6cc6694c443cc (patch)
treecfb5b015a0bbe96b66a5980f354b8d746762fd81 /src/testbed/test_testbed_api_controllerlink.c
parent9174ab063cf1a5a33e8035073b88b785e0151f4d (diff)
downloadgnunet-ffec951065ab72b166947788acc6cc6694c443cc.tar.gz
gnunet-ffec951065ab72b166947788acc6cc6694c443cc.zip
- fix crashing tests
Diffstat (limited to 'src/testbed/test_testbed_api_controllerlink.c')
-rw-r--r--src/testbed/test_testbed_api_controllerlink.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/testbed/test_testbed_api_controllerlink.c b/src/testbed/test_testbed_api_controllerlink.c
index eadc6c9ff..1d0a3652c 100644
--- a/src/testbed/test_testbed_api_controllerlink.c
+++ b/src/testbed/test_testbed_api_controllerlink.c
@@ -252,6 +252,11 @@ static struct GNUNET_TESTBED_Peer *master_peer;
252struct GNUNET_TESTBED_HostHabitableCheckHandle *hc_handle; 252struct GNUNET_TESTBED_HostHabitableCheckHandle *hc_handle;
253 253
254/** 254/**
255 * The task handle for the delay task
256 */
257GNUNET_SCHEDULER_TaskIdentifier delay_task_id;
258
259/**
255 * Event mask 260 * Event mask
256 */ 261 */
257uint64_t event_mask; 262uint64_t event_mask;
@@ -273,6 +278,11 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
273{ 278{
274 if (GNUNET_SCHEDULER_NO_TASK != abort_task) 279 if (GNUNET_SCHEDULER_NO_TASK != abort_task)
275 GNUNET_SCHEDULER_cancel (abort_task); 280 GNUNET_SCHEDULER_cancel (abort_task);
281 if (GNUNET_SCHEDULER_NO_TASK != delay_task_id)
282 {
283 GNUNET_SCHEDULER_cancel (delay_task_id);
284 delay_task_id = GNUNET_SCHEDULER_NO_TASK;
285 }
276 if (NULL != hc_handle) 286 if (NULL != hc_handle)
277 GNUNET_TESTBED_is_host_habitable_cancel (hc_handle); 287 GNUNET_TESTBED_is_host_habitable_cancel (hc_handle);
278 if (NULL != slave3) 288 if (NULL != slave3)
@@ -335,6 +345,7 @@ do_abort_now (void *cls)
335static void 345static void
336delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 346delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
337{ 347{
348 delay_task_id = GNUNET_SCHEDULER_NO_TASK;
338 switch (result) 349 switch (result)
339 { 350 {
340 case SLAVE2_PEER_CREATE_SUCCESS: 351 case SLAVE2_PEER_CREATE_SUCCESS:
@@ -383,9 +394,11 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
383 result = SLAVE2_PEER_CREATE_SUCCESS; 394 result = SLAVE2_PEER_CREATE_SUCCESS;
384 slave2_peer = peer; 395 slave2_peer = peer;
385 GNUNET_TESTBED_operation_done (op); 396 GNUNET_TESTBED_operation_done (op);
386 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply 397 delay_task_id =
387 (GNUNET_TIME_UNIT_SECONDS, 1), &delay_task, 398 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
388 NULL); 399 (GNUNET_TIME_UNIT_SECONDS, 1),
400 &delay_task,
401 NULL);
389 break; 402 break;
390 default: 403 default:
391 GNUNET_assert (0); 404 GNUNET_assert (0);
@@ -496,9 +509,10 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
496 result = MASTER_SLAVE2_PEERS_CONNECTED; 509 result = MASTER_SLAVE2_PEERS_CONNECTED;
497 GNUNET_TESTBED_operation_done (op); 510 GNUNET_TESTBED_operation_done (op);
498 op = NULL; 511 op = NULL;
499 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply 512 delay_task_id =
500 (GNUNET_TIME_UNIT_SECONDS, 1), &delay_task, 513 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
501 NULL); 514 (GNUNET_TIME_UNIT_SECONDS, 1), &delay_task,
515 NULL);
502 break; 516 break;
503 case MASTER_SLAVE2_PEERS_CONNECTED: 517 case MASTER_SLAVE2_PEERS_CONNECTED:
504 GNUNET_assert (GNUNET_TESTBED_ET_PEER_STOP == event->type); 518 GNUNET_assert (GNUNET_TESTBED_ET_PEER_STOP == event->type);