aboutsummaryrefslogtreecommitdiff
path: root/src/testbed
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2013-03-18 13:11:36 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2013-03-18 13:11:36 +0000
commitd0d39def77f1f81dd83823e0fe2cfe84a5393a74 (patch)
tree7c566f79daa839bc74569a415c1b0d2537263280 /src/testbed
parent153c0ba219f50e851aaef92d0cef28f80a33763e (diff)
downloadgnunet-d0d39def77f1f81dd83823e0fe2cfe84a5393a74.tar.gz
gnunet-d0d39def77f1f81dd83823e0fe2cfe84a5393a74.zip
expose Operation and associated closure in every event
Diffstat (limited to 'src/testbed')
-rw-r--r--src/testbed/gnunet-service-testbed.c8
-rw-r--r--src/testbed/test_testbed_api.c10
-rw-r--r--src/testbed/test_testbed_api_2peers_1controller.c10
-rw-r--r--src/testbed/test_testbed_api_3peers_3controllers.c14
-rw-r--r--src/testbed/test_testbed_api_controllerlink.c12
-rw-r--r--src/testbed/test_testbed_api_testbed_run.c2
-rw-r--r--src/testbed/testbed_api.c22
-rw-r--r--src/testbed/testbed_api_peers.c6
-rw-r--r--src/testbed/testbed_api_services.c4
-rw-r--r--src/testbed/testbed_api_testbed.c6
10 files changed, 51 insertions, 43 deletions
diff --git a/src/testbed/gnunet-service-testbed.c b/src/testbed/gnunet-service-testbed.c
index eae4784b5..81c17012d 100644
--- a/src/testbed/gnunet-service-testbed.c
+++ b/src/testbed/gnunet-service-testbed.c
@@ -861,10 +861,10 @@ slave_event_callback (void *cls,
861 /* We currently only get here when working on RegisteredHostContexts and 861 /* We currently only get here when working on RegisteredHostContexts and
862 LCFContexts */ 862 LCFContexts */
863 GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); 863 GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
864 rhc = event->details.operation_finished.op_cls; 864 rhc = event->op_cls;
865 if (CLOSURE_TYPE_RHC == rhc->type) 865 if (CLOSURE_TYPE_RHC == rhc->type)
866 { 866 {
867 GNUNET_assert (rhc->sub_op == event->details.operation_finished.operation); 867 GNUNET_assert (rhc->sub_op == event->op);
868 switch (rhc->state) 868 switch (rhc->state)
869 { 869 {
870 case RHC_GET_CFG: 870 case RHC_GET_CFG:
@@ -889,10 +889,10 @@ slave_event_callback (void *cls,
889 } 889 }
890 return; 890 return;
891 } 891 }
892 lcf = event->details.operation_finished.op_cls; 892 lcf = event->op_cls;
893 if (CLOSURE_TYPE_LCF == lcf->type) 893 if (CLOSURE_TYPE_LCF == lcf->type)
894 { 894 {
895 GNUNET_assert (lcf->op == event->details.operation_finished.operation); 895 GNUNET_assert (lcf->op == event->op);
896 GNUNET_assert (FINISHED == lcf->state); 896 GNUNET_assert (FINISHED == lcf->state);
897 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK != lcf->timeout_task); 897 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK != lcf->timeout_task);
898 GNUNET_SCHEDULER_cancel (lcf->timeout_task); 898 GNUNET_SCHEDULER_cancel (lcf->timeout_task);
diff --git a/src/testbed/test_testbed_api.c b/src/testbed/test_testbed_api.c
index 2927c3798..75e11211f 100644
--- a/src/testbed/test_testbed_api.c
+++ b/src/testbed/test_testbed_api.c
@@ -223,7 +223,7 @@ dht_disconnect_adapter (void *cls, void *op_result)
223 dht_handle = NULL; 223 dht_handle = NULL;
224 FAIL_TEST (PEER_SERVICE_CONNECT == sub_test, return); 224 FAIL_TEST (PEER_SERVICE_CONNECT == sub_test, return);
225 FAIL_TEST (NULL != operation, return); 225 FAIL_TEST (NULL != operation, return);
226 operation = GNUNET_TESTBED_peer_stop (peer, NULL, NULL); 226 operation = GNUNET_TESTBED_peer_stop (NULL, peer, NULL, NULL);
227 FAIL_TEST (NULL != operation, return); 227 FAIL_TEST (NULL != operation, return);
228} 228}
229 229
@@ -307,16 +307,16 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
307 switch (sub_test) 307 switch (sub_test)
308 { 308 {
309 case PEER_DESTROY: 309 case PEER_DESTROY:
310 FAIL_TEST (event->details.operation_finished.operation == operation, return); 310 FAIL_TEST (event->op == operation, return);
311 FAIL_TEST (NULL == event->details.operation_finished.op_cls, return); 311 FAIL_TEST (NULL == event->op_cls, return);
312 FAIL_TEST (NULL == event->details.operation_finished.emsg, return); 312 FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
313 FAIL_TEST (NULL == event->details.operation_finished.generic, return); 313 FAIL_TEST (NULL == event->details.operation_finished.generic, return);
314 GNUNET_TESTBED_operation_done (operation); 314 GNUNET_TESTBED_operation_done (operation);
315 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 315 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
316 break; 316 break;
317 case PEER_SERVICE_CONNECT: 317 case PEER_SERVICE_CONNECT:
318 FAIL_TEST (event->details.operation_finished.operation == operation, return); 318 FAIL_TEST (event->op == operation, return);
319 FAIL_TEST (NULL == event->details.operation_finished.op_cls, return); 319 FAIL_TEST (NULL == event->op_cls, return);
320 FAIL_TEST (NULL == event->details.operation_finished.emsg, return); 320 FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
321 FAIL_TEST (NULL != dht_handle, return); 321 FAIL_TEST (NULL != dht_handle, return);
322 FAIL_TEST (event->details.operation_finished.generic == dht_handle, return); 322 FAIL_TEST (event->details.operation_finished.generic == dht_handle, return);
diff --git a/src/testbed/test_testbed_api_2peers_1controller.c b/src/testbed/test_testbed_api_2peers_1controller.c
index 581a1c1f5..ac7cc4227 100644
--- a/src/testbed/test_testbed_api_2peers_1controller.c
+++ b/src/testbed/test_testbed_api_2peers_1controller.c
@@ -294,16 +294,16 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
294 { 294 {
295 case GNUNET_TESTBED_ET_OPERATION_FINISHED: /* Will be reached when we destroy peers */ 295 case GNUNET_TESTBED_ET_OPERATION_FINISHED: /* Will be reached when we destroy peers */
296 FAIL_TEST (PEERS_STOPPED == result); 296 FAIL_TEST (PEERS_STOPPED == result);
297 FAIL_TEST (NULL == event->details.operation_finished.op_cls); 297 FAIL_TEST (NULL == event->op_cls);
298 FAIL_TEST (NULL == event->details.operation_finished.emsg); 298 FAIL_TEST (NULL == event->details.operation_finished.emsg);
299 FAIL_TEST (NULL == event->details.operation_finished.generic); 299 FAIL_TEST (NULL == event->details.operation_finished.generic);
300 if (event->details.operation_finished.operation == peer1.operation) 300 if (event->op == peer1.operation)
301 { 301 {
302 GNUNET_TESTBED_operation_done (peer1.operation); 302 GNUNET_TESTBED_operation_done (peer1.operation);
303 peer1.operation = NULL; 303 peer1.operation = NULL;
304 peer1.peer = NULL; 304 peer1.peer = NULL;
305 } 305 }
306 else if (event->details.operation_finished.operation == peer2.operation) 306 else if (event->op == peer2.operation)
307 { 307 {
308 GNUNET_TESTBED_operation_done (peer2.operation); 308 GNUNET_TESTBED_operation_done (peer2.operation);
309 peer2.operation = NULL; 309 peer2.operation = NULL;
@@ -386,8 +386,8 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
386 common_operation = NULL; 386 common_operation = NULL;
387 result = PEERS_CONNECTED_2; 387 result = PEERS_CONNECTED_2;
388 LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n"); 388 LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n");
389 peer1.operation = GNUNET_TESTBED_peer_stop (peer1.peer, NULL, NULL); 389 peer1.operation = GNUNET_TESTBED_peer_stop (NULL, peer1.peer, NULL, NULL);
390 peer2.operation = GNUNET_TESTBED_peer_stop (peer2.peer, NULL, NULL); 390 peer2.operation = GNUNET_TESTBED_peer_stop (NULL, peer2.peer, NULL, NULL);
391 break; 391 break;
392 default: 392 default:
393 FAIL_TEST (0); 393 FAIL_TEST (0);
diff --git a/src/testbed/test_testbed_api_3peers_3controllers.c b/src/testbed/test_testbed_api_3peers_3controllers.c
index 526386f01..12b14258f 100644
--- a/src/testbed/test_testbed_api_3peers_3controllers.c
+++ b/src/testbed/test_testbed_api_3peers_3controllers.c
@@ -456,7 +456,7 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
456 switch (event->type) 456 switch (event->type)
457 { 457 {
458 case GNUNET_TESTBED_ET_OPERATION_FINISHED: 458 case GNUNET_TESTBED_ET_OPERATION_FINISHED:
459 if ((NULL != event->details.operation_finished.op_cls) || 459 if ((NULL != event->op_cls) ||
460 (NULL != event->details.operation_finished.emsg)) 460 (NULL != event->details.operation_finished.emsg))
461 { 461 {
462 GNUNET_break (0); 462 GNUNET_break (0);
@@ -472,19 +472,19 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
472 abort_test (); 472 abort_test ();
473 return; 473 return;
474 } 474 }
475 if (event->details.operation_finished.operation == peer1.operation) 475 if (event->op == peer1.operation)
476 { 476 {
477 GNUNET_TESTBED_operation_done (peer1.operation); 477 GNUNET_TESTBED_operation_done (peer1.operation);
478 peer1.operation = NULL; 478 peer1.operation = NULL;
479 peer1.peer = NULL; 479 peer1.peer = NULL;
480 } 480 }
481 else if (event->details.operation_finished.operation == peer2.operation) 481 else if (event->op == peer2.operation)
482 { 482 {
483 GNUNET_TESTBED_operation_done (peer2.operation); 483 GNUNET_TESTBED_operation_done (peer2.operation);
484 peer2.operation = NULL; 484 peer2.operation = NULL;
485 peer2.peer = NULL; 485 peer2.peer = NULL;
486 } 486 }
487 else if (event->details.operation_finished.operation == peer3.operation) 487 else if (event->op == peer3.operation)
488 { 488 {
489 GNUNET_TESTBED_operation_done (peer3.operation); 489 GNUNET_TESTBED_operation_done (peer3.operation);
490 peer3.operation = NULL; 490 peer3.operation = NULL;
@@ -706,9 +706,9 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
706 common_operation = NULL; 706 common_operation = NULL;
707 result = PEERS_CONNECTED_2; 707 result = PEERS_CONNECTED_2;
708 LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n"); 708 LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n");
709 peer1.operation = GNUNET_TESTBED_peer_stop (peer1.peer, NULL, NULL); 709 peer1.operation = GNUNET_TESTBED_peer_stop (NULL, peer1.peer, NULL, NULL);
710 peer2.operation = GNUNET_TESTBED_peer_stop (peer2.peer, NULL, NULL); 710 peer2.operation = GNUNET_TESTBED_peer_stop (NULL, peer2.peer, NULL, NULL);
711 peer3.operation = GNUNET_TESTBED_peer_stop (peer3.peer, NULL, NULL); 711 peer3.operation = GNUNET_TESTBED_peer_stop (NULL, peer3.peer, NULL, NULL);
712 break; 712 break;
713 default: 713 default:
714 GNUNET_break (0); 714 GNUNET_break (0);
diff --git a/src/testbed/test_testbed_api_controllerlink.c b/src/testbed/test_testbed_api_controllerlink.c
index c10451703..2f9e53b94 100644
--- a/src/testbed/test_testbed_api_controllerlink.c
+++ b/src/testbed/test_testbed_api_controllerlink.c
@@ -363,11 +363,11 @@ delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
363 switch (result) 363 switch (result)
364 { 364 {
365 case SLAVE2_PEER_CREATE_SUCCESS: 365 case SLAVE2_PEER_CREATE_SUCCESS:
366 op = GNUNET_TESTBED_peer_stop (slave1_peer, NULL, NULL); 366 op = GNUNET_TESTBED_peer_stop (NULL, slave1_peer, NULL, NULL);
367 FAIL_TEST (NULL != op); 367 FAIL_TEST (NULL != op);
368 break; 368 break;
369 case MASTER_SLAVE2_PEERS_CONNECTED: 369 case MASTER_SLAVE2_PEERS_CONNECTED:
370 op = GNUNET_TESTBED_peer_stop (slave2_peer, NULL, NULL); 370 op = GNUNET_TESTBED_peer_stop (NULL, slave2_peer, NULL, NULL);
371 FAIL_TEST (NULL != op); 371 FAIL_TEST (NULL != op);
372 break; 372 break;
373 default: 373 default:
@@ -432,8 +432,8 @@ check_operation_success (const struct GNUNET_TESTBED_EventInformation *event)
432{ 432{
433 FAIL_TEST (NULL != event); 433 FAIL_TEST (NULL != event);
434 FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); 434 FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
435 FAIL_TEST (event->details.operation_finished.operation == op); 435 FAIL_TEST (event->op == op);
436 FAIL_TEST (NULL == event->details.operation_finished.op_cls); 436 FAIL_TEST (NULL == event->op_cls);
437 FAIL_TEST (NULL == event->details.operation_finished.emsg); 437 FAIL_TEST (NULL == event->details.operation_finished.emsg);
438 FAIL_TEST (NULL == event->details.operation_finished.generic); 438 FAIL_TEST (NULL == event->details.operation_finished.generic);
439} 439}
@@ -562,8 +562,8 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
562 case SLAVE3_STARTED: 562 case SLAVE3_STARTED:
563 FAIL_TEST (NULL != event); 563 FAIL_TEST (NULL != event);
564 FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); 564 FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
565 FAIL_TEST (event->details.operation_finished.operation == op); 565 FAIL_TEST (event->op == op);
566 FAIL_TEST (NULL == event->details.operation_finished.op_cls); 566 FAIL_TEST (NULL == event->op_cls);
567 FAIL_TEST (NULL == event->details.operation_finished.emsg); 567 FAIL_TEST (NULL == event->details.operation_finished.emsg);
568 cfg3 = GNUNET_CONFIGURATION_dup (event->details.operation_finished.generic); 568 cfg3 = GNUNET_CONFIGURATION_dup (event->details.operation_finished.generic);
569 GNUNET_TESTBED_operation_done (op); 569 GNUNET_TESTBED_operation_done (op);
diff --git a/src/testbed/test_testbed_api_testbed_run.c b/src/testbed/test_testbed_api_testbed_run.c
index 9cad74a7b..a27d8b064 100644
--- a/src/testbed/test_testbed_api_testbed_run.c
+++ b/src/testbed/test_testbed_api_testbed_run.c
@@ -102,7 +102,7 @@ test_master (void *cls, unsigned int num_peers,
102{ 102{
103 result = GNUNET_OK; 103 result = GNUNET_OK;
104 GNUNET_assert (NULL != peers[0]); 104 GNUNET_assert (NULL != peers[0]);
105 op = GNUNET_TESTBED_peer_stop (peers[0], NULL, NULL); 105 op = GNUNET_TESTBED_peer_stop (NULL, peers[0], NULL, NULL);
106 GNUNET_assert (NULL != op); 106 GNUNET_assert (NULL != op);
107} 107}
108 108
diff --git a/src/testbed/testbed_api.c b/src/testbed/testbed_api.c
index 117b39833..11b2aae35 100644
--- a/src/testbed/testbed_api.c
+++ b/src/testbed/testbed_api.c
@@ -240,8 +240,8 @@ handle_opsuccess (struct GNUNET_TESTBED_Controller *c,
240 return GNUNET_YES; 240 return GNUNET_YES;
241 } 241 }
242 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED; 242 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
243 event.details.operation_finished.operation = opc->op; 243 event.op = opc->op;
244 event.details.operation_finished.op_cls = opc->op_cls; 244 event.op_cls = opc->op_cls;
245 event.details.operation_finished.emsg = NULL; 245 event.details.operation_finished.emsg = NULL;
246 event.details.operation_finished.generic = NULL; 246 event.details.operation_finished.generic = NULL;
247 switch (opc->type) 247 switch (opc->type)
@@ -385,6 +385,8 @@ handle_peer_event (struct GNUNET_TESTBED_Controller *c,
385 peer = data->peer; 385 peer = data->peer;
386 GNUNET_assert (NULL != peer); 386 GNUNET_assert (NULL != peer);
387 event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type); 387 event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type);
388 event.op = opc->op;
389 event.op_cls = opc->op_cls;
388 switch (event.type) 390 switch (event.type)
389 { 391 {
390 case GNUNET_TESTBED_ET_PEER_START: 392 case GNUNET_TESTBED_ET_PEER_START:
@@ -455,6 +457,8 @@ handle_peer_conevent (struct GNUNET_TESTBED_Controller *c,
455 GNUNET_assert ((ntohl (msg->peer1) == data->p1->unique_id) && 457 GNUNET_assert ((ntohl (msg->peer1) == data->p1->unique_id) &&
456 (ntohl (msg->peer2) == data->p2->unique_id)); 458 (ntohl (msg->peer2) == data->p2->unique_id));
457 event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type); 459 event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type);
460 event.op = opc->op;
461 event.op_cls = opc->op_cls;
458 switch (event.type) 462 switch (event.type)
459 { 463 {
460 case GNUNET_TESTBED_ET_CONNECT: 464 case GNUNET_TESTBED_ET_CONNECT:
@@ -604,12 +608,12 @@ handle_op_fail_event (struct GNUNET_TESTBED_Controller *c,
604 (NULL != c->cc)) 608 (NULL != c->cc))
605 { 609 {
606 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED; 610 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
607 event.details.operation_finished.operation = opc->op; 611 event.op = opc->op;
608 event.details.operation_finished.op_cls = opc->op_cls; 612 event.op_cls = opc->op_cls;
609 event.details.operation_finished.emsg = emsg; 613 event.details.operation_finished.emsg = emsg;
610 event.details.operation_finished.generic = NULL; 614 event.details.operation_finished.generic = NULL;
611 c->cc (c->cc_cls, &event); 615 c->cc (c->cc_cls, &event);
612 if (event.details.operation_finished.operation == last_finished_operation) 616 if (event.op == last_finished_operation)
613 return GNUNET_YES; 617 return GNUNET_YES;
614 } 618 }
615 switch (opc->type) 619 switch (opc->type)
@@ -731,9 +735,9 @@ handle_slave_config (struct GNUNET_TESTBED_Controller *c,
731 { 735 {
732 opc->data = GNUNET_TESTBED_extract_config_ (&msg->header); 736 opc->data = GNUNET_TESTBED_extract_config_ (&msg->header);
733 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED; 737 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
738 event.op = opc->op;
739 event.op_cls = opc->op_cls;
734 event.details.operation_finished.generic = opc->data; 740 event.details.operation_finished.generic = opc->data;
735 event.details.operation_finished.operation = opc->op;
736 event.details.operation_finished.op_cls = opc->op_cls;
737 event.details.operation_finished.emsg = NULL; 741 event.details.operation_finished.emsg = NULL;
738 c->cc (c->cc_cls, &event); 742 c->cc (c->cc_cls, &event);
739 } 743 }
@@ -787,8 +791,8 @@ handle_link_controllers_result (struct GNUNET_TESTBED_Controller *c,
787 GNUNET_free (data); 791 GNUNET_free (data);
788 opc->data = NULL; 792 opc->data = NULL;
789 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED; 793 event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
790 event.details.operation_finished.operation = opc->op; 794 event.op = opc->op;
791 event.details.operation_finished.op_cls = opc->op_cls; 795 event.op_cls = opc->op_cls;
792 event.details.operation_finished.emsg = NULL; 796 event.details.operation_finished.emsg = NULL;
793 event.details.operation_finished.generic = NULL; 797 event.details.operation_finished.generic = NULL;
794 emsg = NULL; 798 emsg = NULL;
diff --git a/src/testbed/testbed_api_peers.c b/src/testbed/testbed_api_peers.c
index 9ad8366f2..b5a66cd5d 100644
--- a/src/testbed/testbed_api_peers.c
+++ b/src/testbed/testbed_api_peers.c
@@ -563,13 +563,16 @@ GNUNET_TESTBED_peer_start (void *op_cls, struct GNUNET_TESTBED_Peer *peer,
563 * "GNUNET_TESTBED_peer_destroy" to fully clean up the 563 * "GNUNET_TESTBED_peer_destroy" to fully clean up the
564 * state of the peer). 564 * state of the peer).
565 * 565 *
566 * @param op_cls the closure for this operation; will be set in the event
567 * information
566 * @param peer peer to stop 568 * @param peer peer to stop
567 * @param pcc function to call upon completion 569 * @param pcc function to call upon completion
568 * @param pcc_cls closure for 'pcc' 570 * @param pcc_cls closure for 'pcc'
569 * @return handle to the operation 571 * @return handle to the operation
570 */ 572 */
571struct GNUNET_TESTBED_Operation * 573struct GNUNET_TESTBED_Operation *
572GNUNET_TESTBED_peer_stop (struct GNUNET_TESTBED_Peer *peer, 574GNUNET_TESTBED_peer_stop (void *op_cls,
575 struct GNUNET_TESTBED_Peer *peer,
573 GNUNET_TESTBED_PeerChurnCallback pcc, void *pcc_cls) 576 GNUNET_TESTBED_PeerChurnCallback pcc, void *pcc_cls)
574{ 577{
575 struct OperationContext *opc; 578 struct OperationContext *opc;
@@ -582,6 +585,7 @@ GNUNET_TESTBED_peer_stop (struct GNUNET_TESTBED_Peer *peer,
582 opc = GNUNET_malloc (sizeof (struct OperationContext)); 585 opc = GNUNET_malloc (sizeof (struct OperationContext));
583 opc->c = peer->controller; 586 opc->c = peer->controller;
584 opc->data = data; 587 opc->data = data;
588 opc->op_cls = op_cls;
585 opc->id = GNUNET_TESTBED_get_next_op_id (opc->c); 589 opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
586 opc->type = OP_PEER_STOP; 590 opc->type = OP_PEER_STOP;
587 opc->op = 591 opc->op =
diff --git a/src/testbed/testbed_api_services.c b/src/testbed/testbed_api_services.c
index 923caed26..3d6d5591d 100644
--- a/src/testbed/testbed_api_services.c
+++ b/src/testbed/testbed_api_services.c
@@ -144,8 +144,8 @@ configuration_receiver (void *cls, const struct GNUNET_MessageHeader *msg)
144 mtype = ntohs (msg->type); 144 mtype = ntohs (msg->type);
145 emsg = NULL; 145 emsg = NULL;
146 info.type = GNUNET_TESTBED_ET_OPERATION_FINISHED; 146 info.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
147 info.details.operation_finished.operation = data->operation; 147 info.op = data->operation;
148 info.details.operation_finished.op_cls = data->op_cls; 148 info.op_cls = data->op_cls;
149 if (GNUNET_MESSAGE_TYPE_TESTBED_OPERATION_FAIL_EVENT == mtype) 149 if (GNUNET_MESSAGE_TYPE_TESTBED_OPERATION_FAIL_EVENT == mtype)
150 { 150 {
151 emsg = 151 emsg =
diff --git a/src/testbed/testbed_api_testbed.c b/src/testbed/testbed_api_testbed.c
index 96be90e83..5e62a2845 100644
--- a/src/testbed/testbed_api_testbed.c
+++ b/src/testbed/testbed_api_testbed.c
@@ -602,7 +602,7 @@ event_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
602 switch (event->type) 602 switch (event->type)
603 { 603 {
604 case GNUNET_TESTBED_ET_OPERATION_FINISHED: 604 case GNUNET_TESTBED_ET_OPERATION_FINISHED:
605 dll_op = event->details.operation_finished.op_cls; 605 dll_op = event->op_cls;
606 if (NULL != event->details.operation_finished.emsg) 606 if (NULL != event->details.operation_finished.emsg)
607 { 607 {
608 LOG (GNUNET_ERROR_TYPE_ERROR, _("Linking controllers failed. Exiting")); 608 LOG (GNUNET_ERROR_TYPE_ERROR, _("Linking controllers failed. Exiting"));
@@ -610,7 +610,7 @@ event_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
610 } 610 }
611 else 611 else
612 rc->reg_hosts++; 612 rc->reg_hosts++;
613 GNUNET_assert (event->details.operation_finished.operation == dll_op->op); 613 GNUNET_assert (event->op == dll_op->op);
614 GNUNET_CONTAINER_DLL_remove (rc->dll_op_head, rc->dll_op_tail, dll_op); 614 GNUNET_CONTAINER_DLL_remove (rc->dll_op_head, rc->dll_op_tail, dll_op);
615 GNUNET_TESTBED_operation_done (dll_op->op); 615 GNUNET_TESTBED_operation_done (dll_op->op);
616 GNUNET_free (dll_op); 616 GNUNET_free (dll_op);
@@ -629,7 +629,7 @@ event_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
629 for (dll_op = rc->dll_op_head; NULL != dll_op; dll_op = dll_op->next) 629 for (dll_op = rc->dll_op_head; NULL != dll_op; dll_op = dll_op->next)
630 { 630 {
631 if ((GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type) && 631 if ((GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type) &&
632 (event->details.operation_finished.operation == dll_op->op)) 632 (event->op == dll_op->op))
633 break; 633 break;
634 } 634 }
635 if (NULL == dll_op) 635 if (NULL == dll_op)