diff options
-rw-r--r-- | src/testbed/gnunet-service-testbed.c | 44 | ||||
-rw-r--r-- | src/testbed/test_testbed_api_controllerlink.c | 213 | ||||
-rw-r--r-- | src/testbed/testbed_api.c | 2 |
3 files changed, 195 insertions, 64 deletions
diff --git a/src/testbed/gnunet-service-testbed.c b/src/testbed/gnunet-service-testbed.c index 3d957d63b..086fb2ab6 100644 --- a/src/testbed/gnunet-service-testbed.c +++ b/src/testbed/gnunet-service-testbed.c | |||
@@ -729,16 +729,19 @@ static int | |||
729 | host_list_add (struct GNUNET_TESTBED_Host *host) | 729 | host_list_add (struct GNUNET_TESTBED_Host *host) |
730 | { | 730 | { |
731 | uint32_t host_id; | 731 | uint32_t host_id; |
732 | uint32_t orig_size; | ||
732 | 733 | ||
733 | host_id = GNUNET_TESTBED_host_get_id_ (host); | 734 | host_id = GNUNET_TESTBED_host_get_id_ (host); |
735 | orig_size = host_list_size; | ||
734 | if (host_list_size <= host_id) | 736 | if (host_list_size <= host_id) |
735 | { | 737 | { |
738 | while (host_list_size <= host_id) | ||
739 | host_list_size += LIST_GROW_STEP; | ||
736 | host_list = | 740 | host_list = |
737 | TESTBED_realloc (host_list, | 741 | TESTBED_realloc (host_list, |
738 | sizeof (struct GNUNET_TESTBED_Host *) * host_list_size, | 742 | sizeof (struct GNUNET_TESTBED_Host *) * orig_size, |
739 | sizeof (struct GNUNET_TESTBED_Host *) * | 743 | sizeof (struct GNUNET_TESTBED_Host *) |
740 | (host_list_size + LIST_GROW_STEP)); | 744 | * host_list_size); |
741 | host_list_size += LIST_GROW_STEP; | ||
742 | } | 745 | } |
743 | if (NULL != host_list[host_id]) | 746 | if (NULL != host_list[host_id]) |
744 | { | 747 | { |
@@ -758,13 +761,17 @@ host_list_add (struct GNUNET_TESTBED_Host *host) | |||
758 | static void | 761 | static void |
759 | route_list_add (struct Route *route) | 762 | route_list_add (struct Route *route) |
760 | { | 763 | { |
764 | uint32_t orig_size; | ||
765 | |||
766 | orig_size = route_list_size; | ||
761 | if (route->dest >= route_list_size) | 767 | if (route->dest >= route_list_size) |
762 | { | 768 | { |
769 | while (route->dest >= route_list_size) | ||
770 | route_list_size += LIST_GROW_STEP; | ||
763 | route_list = | 771 | route_list = |
764 | TESTBED_realloc (route_list, sizeof (struct Route *) * route_list_size, | 772 | TESTBED_realloc (route_list, |
765 | sizeof (struct Route *) * (route_list_size + | 773 | sizeof (struct Route *) * orig_size, |
766 | LIST_GROW_STEP)); | 774 | sizeof (struct Route *) * route_list_size); |
767 | route_list_size += LIST_GROW_STEP; | ||
768 | } | 775 | } |
769 | GNUNET_assert (NULL == route_list[route->dest]); | 776 | GNUNET_assert (NULL == route_list[route->dest]); |
770 | route_list[route->dest] = route; | 777 | route_list[route->dest] = route; |
@@ -1204,7 +1211,7 @@ handle_init (void *cls, struct GNUNET_SERVER_Client *client, | |||
1204 | 1211 | ||
1205 | if (NULL != master_context) | 1212 | if (NULL != master_context) |
1206 | { | 1213 | { |
1207 | /* We are being connected to laterally */ | 1214 | LOG_DEBUG ("We are being connected to laterally\n"); |
1208 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | 1215 | GNUNET_SERVER_receive_done (client, GNUNET_OK); |
1209 | return; | 1216 | return; |
1210 | } | 1217 | } |
@@ -1586,11 +1593,24 @@ handle_link_controllers (void *cls, struct GNUNET_SERVER_Client *client, | |||
1586 | GNUNET_CONTAINER_DLL_insert_tail (lcfq_head, lcfq_tail, lcfq); | 1593 | GNUNET_CONTAINER_DLL_insert_tail (lcfq_head, lcfq_tail, lcfq); |
1587 | /* FIXME: Adding a new route should happen after the controllers are linked | 1594 | /* FIXME: Adding a new route should happen after the controllers are linked |
1588 | * successfully */ | 1595 | * successfully */ |
1589 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | 1596 | if (1 != msg->is_subordinate) |
1597 | { | ||
1598 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | ||
1599 | return; | ||
1600 | } | ||
1601 | if ((delegated_host_id < route_list_size) | ||
1602 | && (NULL != route_list[delegated_host_id])) | ||
1603 | { | ||
1604 | GNUNET_break_op (0); /* Are you trying to link delegated host twice | ||
1605 | with is subordinate flag set to GNUNET_YES? */ | ||
1606 | GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); | ||
1607 | return; | ||
1608 | } | ||
1590 | new_route = GNUNET_malloc (sizeof (struct Route)); | 1609 | new_route = GNUNET_malloc (sizeof (struct Route)); |
1591 | new_route->dest = delegated_host_id; | 1610 | new_route->dest = delegated_host_id; |
1592 | new_route->thru = route->dest; | 1611 | new_route->thru = route->dest; |
1593 | route_list_add (new_route); | 1612 | route_list_add (new_route); |
1613 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | ||
1594 | } | 1614 | } |
1595 | 1615 | ||
1596 | 1616 | ||
@@ -2695,14 +2715,14 @@ handle_slave_get_config (void *cls, struct GNUNET_SERVER_Client *client, | |||
2695 | GNUNET_free (config); | 2715 | GNUNET_free (config); |
2696 | reply_size = xconfig_size + sizeof (struct GNUNET_TESTBED_SlaveConfiguration); | 2716 | reply_size = xconfig_size + sizeof (struct GNUNET_TESTBED_SlaveConfiguration); |
2697 | GNUNET_break (reply_size <= UINT16_MAX); | 2717 | GNUNET_break (reply_size <= UINT16_MAX); |
2698 | GNUNET_break (config_size <= UINT32_MAX); | 2718 | GNUNET_break (config_size <= UINT16_MAX); |
2699 | reply = GNUNET_realloc (xconfig, reply_size); | 2719 | reply = GNUNET_realloc (xconfig, reply_size); |
2700 | (void) memmove (&reply[1], reply, xconfig_size); | 2720 | (void) memmove (&reply[1], reply, xconfig_size); |
2701 | reply->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_SLAVECONFIG); | 2721 | reply->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_SLAVECONFIG); |
2702 | reply->header.size = htons ((uint16_t) reply_size); | 2722 | reply->header.size = htons ((uint16_t) reply_size); |
2703 | reply->slave_id = msg->slave_id; | 2723 | reply->slave_id = msg->slave_id; |
2704 | reply->operation_id = msg->operation_id; | 2724 | reply->operation_id = msg->operation_id; |
2705 | reply->config_size = htonl ((uint32_t) config_size); | 2725 | reply->config_size = htons ((uint16_t) config_size); |
2706 | queue_message (client, &reply->header); | 2726 | queue_message (client, &reply->header); |
2707 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | 2727 | GNUNET_SERVER_receive_done (client, GNUNET_OK); |
2708 | } | 2728 | } |
diff --git a/src/testbed/test_testbed_api_controllerlink.c b/src/testbed/test_testbed_api_controllerlink.c index 2bb3f8d27..2a9add64a 100644 --- a/src/testbed/test_testbed_api_controllerlink.c +++ b/src/testbed/test_testbed_api_controllerlink.c | |||
@@ -24,6 +24,19 @@ | |||
24 | * @author Sree Harsha Totakura <sreeharsha@totakura.in> | 24 | * @author Sree Harsha Totakura <sreeharsha@totakura.in> |
25 | */ | 25 | */ |
26 | 26 | ||
27 | |||
28 | /** | ||
29 | * The controller architecture we try to achieve in this test case: | ||
30 | * | ||
31 | * Master Controller | ||
32 | * // \\ | ||
33 | * // \\ | ||
34 | * Slave Controller 1---------Slave Controller 3 | ||
35 | * || | ||
36 | * || | ||
37 | * Slave Controller 2 | ||
38 | */ | ||
39 | |||
27 | #include "platform.h" | 40 | #include "platform.h" |
28 | #include "gnunet_util_lib.h" | 41 | #include "gnunet_util_lib.h" |
29 | #include "gnunet_testing_lib-new.h" | 42 | #include "gnunet_testing_lib-new.h" |
@@ -47,75 +60,96 @@ | |||
47 | enum Stage | 60 | enum Stage |
48 | { | 61 | { |
49 | 62 | ||
50 | /** | 63 | /** |
51 | * Initial stage | 64 | * Initial stage |
52 | */ | 65 | */ |
53 | INIT, | 66 | INIT, |
54 | 67 | ||
55 | /** | 68 | /** |
56 | * Master controller has started | 69 | * Master controller has started |
57 | */ | 70 | */ |
58 | MASTER_STARTED, | 71 | MASTER_STARTED, |
59 | 72 | ||
60 | /** | 73 | /** |
61 | * The first slave has been registered at master controller | 74 | * The first slave has been registered at master controller |
62 | */ | 75 | */ |
63 | SLAVE1_REGISTERED, | 76 | SLAVE1_REGISTERED, |
64 | 77 | ||
65 | /** | 78 | /** |
66 | * The second slave has been registered at the master controller | 79 | * The second slave has been registered at the master controller |
67 | */ | 80 | */ |
68 | SLAVE2_REGISTERED, | 81 | SLAVE2_REGISTERED, |
69 | 82 | ||
70 | /** | 83 | /** |
71 | * Link from master to slave 1 has been successfully created | 84 | * Link from master to slave 1 has been successfully created |
72 | */ | 85 | */ |
73 | SLAVE1_LINK_SUCCESS, | 86 | SLAVE1_LINK_SUCCESS, |
74 | 87 | ||
75 | /** | 88 | /** |
76 | * Link from slave 1 to slave 2 has been successfully created. | 89 | * Link from slave 1 to slave 2 has been successfully created. |
77 | */ | 90 | */ |
78 | SLAVE2_LINK_SUCCESS, | 91 | SLAVE2_LINK_SUCCESS, |
79 | 92 | ||
80 | /** | 93 | /** |
81 | * Peer create on slave 1 successful | 94 | * Peer create on slave 1 successful |
82 | */ | 95 | */ |
83 | SLAVE1_PEER_CREATE_SUCCESS, | 96 | SLAVE1_PEER_CREATE_SUCCESS, |
84 | 97 | ||
85 | /** | 98 | /** |
86 | * Peer create on slave 2 successful | 99 | * Peer create on slave 2 successful |
87 | */ | 100 | */ |
88 | SLAVE2_PEER_CREATE_SUCCESS, | 101 | SLAVE2_PEER_CREATE_SUCCESS, |
89 | 102 | ||
90 | /** | 103 | /** |
91 | * Peer startup on slave 1 successful | 104 | * Peer startup on slave 1 successful |
92 | */ | 105 | */ |
93 | SLAVE1_PEER_START_SUCCESS, | 106 | SLAVE1_PEER_START_SUCCESS, |
94 | 107 | ||
95 | /** | 108 | /** |
96 | * Peer on slave 1 successfully stopped | 109 | * Peer on slave 1 successfully stopped |
97 | */ | 110 | */ |
98 | SLAVE1_PEER_STOP_SUCCESS, | 111 | SLAVE1_PEER_STOP_SUCCESS, |
99 | 112 | ||
100 | /** | 113 | /** |
101 | * Peer startup on slave 2 successful | 114 | * Peer startup on slave 2 successful |
102 | */ | 115 | */ |
103 | SLAVE2_PEER_START_SUCCESS, | 116 | SLAVE2_PEER_START_SUCCESS, |
104 | 117 | ||
105 | /** | 118 | /** |
106 | * Peer on slave 2 successfully stopped | 119 | * Peer on slave 2 successfully stopped |
107 | */ | 120 | */ |
108 | SLAVE2_PEER_STOP_SUCCESS, | 121 | SLAVE2_PEER_STOP_SUCCESS, |
109 | 122 | ||
110 | /** | 123 | /** |
111 | * Peer destroy on slave 1 successful | 124 | * Peer destroy on slave 1 successful |
112 | */ | 125 | */ |
113 | SLAVE1_PEER_DESTROY_SUCCESS, | 126 | SLAVE1_PEER_DESTROY_SUCCESS, |
114 | 127 | ||
115 | /** | 128 | /** |
116 | * Peer destory on slave 2 successful; Marks test as successful | 129 | * Peer destory on slave 2 successful |
117 | */ | 130 | */ |
118 | SUCCESS | 131 | SLAVE2_PEER_DESTROY_SUCCESS, |
132 | |||
133 | /** | ||
134 | * Slave 3 has successfully registered | ||
135 | */ | ||
136 | SLAVE3_REGISTERED, | ||
137 | |||
138 | /** | ||
139 | * Slave 3 has successfully started | ||
140 | */ | ||
141 | SLAVE3_STARTED, | ||
142 | |||
143 | /** | ||
144 | * The configuration of slave 3 is acquired | ||
145 | */ | ||
146 | SLAVE3_GET_CONFIG_SUCCESS, | ||
147 | |||
148 | /** | ||
149 | * Slave 1 has linked to slave 3; Also marks test as success | ||
150 | */ | ||
151 | SLAVE3_LINK_SUCCESS, | ||
152 | |||
119 | }; | 153 | }; |
120 | 154 | ||
121 | /** | 155 | /** |
@@ -144,6 +178,11 @@ static struct GNUNET_TESTBED_Host *slave; | |||
144 | static struct GNUNET_TESTBED_Host *slave2; | 178 | static struct GNUNET_TESTBED_Host *slave2; |
145 | 179 | ||
146 | /** | 180 | /** |
181 | * Host for slave 3 | ||
182 | */ | ||
183 | static struct GNUNET_TESTBED_Host *slave3; | ||
184 | |||
185 | /** | ||
147 | * Slave host registration handle | 186 | * Slave host registration handle |
148 | */ | 187 | */ |
149 | static struct GNUNET_TESTBED_HostRegistrationHandle *rh; | 188 | static struct GNUNET_TESTBED_HostRegistrationHandle *rh; |
@@ -154,6 +193,11 @@ static struct GNUNET_TESTBED_HostRegistrationHandle *rh; | |||
154 | static struct GNUNET_CONFIGURATION_Handle *cfg; | 193 | static struct GNUNET_CONFIGURATION_Handle *cfg; |
155 | 194 | ||
156 | /** | 195 | /** |
196 | * Configuration of slave 3 controller | ||
197 | */ | ||
198 | static struct GNUNET_CONFIGURATION_Handle *cfg3; | ||
199 | |||
200 | /** | ||
157 | * Abort task | 201 | * Abort task |
158 | */ | 202 | */ |
159 | static GNUNET_SCHEDULER_TaskIdentifier abort_task; | 203 | static GNUNET_SCHEDULER_TaskIdentifier abort_task; |
@@ -195,6 +239,8 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
195 | { | 239 | { |
196 | if (GNUNET_SCHEDULER_NO_TASK != abort_task) | 240 | if (GNUNET_SCHEDULER_NO_TASK != abort_task) |
197 | GNUNET_SCHEDULER_cancel (abort_task); | 241 | GNUNET_SCHEDULER_cancel (abort_task); |
242 | if (NULL != slave3) | ||
243 | GNUNET_TESTBED_host_destroy (slave3); | ||
198 | if (NULL != slave2) | 244 | if (NULL != slave2) |
199 | GNUNET_TESTBED_host_destroy (slave2); | 245 | GNUNET_TESTBED_host_destroy (slave2); |
200 | if (NULL != slave) | 246 | if (NULL != slave) |
@@ -205,11 +251,12 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
205 | GNUNET_TESTBED_controller_disconnect (mc); | 251 | GNUNET_TESTBED_controller_disconnect (mc); |
206 | if (NULL != cfg) | 252 | if (NULL != cfg) |
207 | GNUNET_CONFIGURATION_destroy (cfg); | 253 | GNUNET_CONFIGURATION_destroy (cfg); |
254 | if (NULL != cfg3) | ||
255 | GNUNET_CONFIGURATION_destroy (cfg3); | ||
208 | if (NULL != cp) | 256 | if (NULL != cp) |
209 | GNUNET_TESTBED_controller_stop (cp); | 257 | GNUNET_TESTBED_controller_stop (cp); |
210 | if (NULL != rh) | 258 | if (NULL != rh) |
211 | GNUNET_TESTBED_cancel_registration (rh); | 259 | GNUNET_TESTBED_cancel_registration (rh); |
212 | |||
213 | } | 260 | } |
214 | 261 | ||
215 | 262 | ||
@@ -229,6 +276,21 @@ do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
229 | 276 | ||
230 | 277 | ||
231 | /** | 278 | /** |
279 | * Calls abort now | ||
280 | * | ||
281 | * @param | ||
282 | * @return | ||
283 | */ | ||
284 | static void | ||
285 | do_abort_now (void *cls) | ||
286 | { | ||
287 | if (GNUNET_SCHEDULER_NO_TASK != abort_task) | ||
288 | GNUNET_SCHEDULER_cancel (abort_task); | ||
289 | abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL); | ||
290 | } | ||
291 | |||
292 | |||
293 | /** | ||
232 | * Task for inserting delay between tests | 294 | * Task for inserting delay between tests |
233 | * | 295 | * |
234 | * @param | 296 | * @param |
@@ -310,6 +372,16 @@ check_operation_success (const struct GNUNET_TESTBED_EventInformation *event) | |||
310 | 372 | ||
311 | 373 | ||
312 | /** | 374 | /** |
375 | * Callback which will be called to after a host registration succeeded or failed | ||
376 | * | ||
377 | * @param cls the host which has been registered | ||
378 | * @param emsg the error message; NULL if host registration is successful | ||
379 | */ | ||
380 | static void | ||
381 | registration_cont (void *cls, const char *emsg); | ||
382 | |||
383 | |||
384 | /** | ||
313 | * Signature of the event handler function called by the | 385 | * Signature of the event handler function called by the |
314 | * respective event controller. | 386 | * respective event controller. |
315 | * | 387 | * |
@@ -385,8 +457,36 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event) | |||
385 | case SLAVE1_PEER_DESTROY_SUCCESS: | 457 | case SLAVE1_PEER_DESTROY_SUCCESS: |
386 | check_operation_success (event); | 458 | check_operation_success (event); |
387 | GNUNET_TESTBED_operation_done (op); | 459 | GNUNET_TESTBED_operation_done (op); |
388 | result = SUCCESS; | 460 | op = NULL; |
389 | GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); | 461 | result = SLAVE2_PEER_DESTROY_SUCCESS; |
462 | slave3 = GNUNET_TESTBED_host_create_with_id (3, "127.0.0.1", NULL, 0); | ||
463 | rh = GNUNET_TESTBED_register_host (mc, slave3, ®istration_cont, NULL); | ||
464 | break; | ||
465 | case SLAVE3_REGISTERED: | ||
466 | check_operation_success (event); | ||
467 | GNUNET_TESTBED_operation_done (op); | ||
468 | op = NULL; | ||
469 | result = SLAVE3_STARTED; | ||
470 | op = GNUNET_TESTBED_get_slave_config (NULL, mc, slave3); | ||
471 | GNUNET_assert (NULL != op); | ||
472 | break; | ||
473 | case SLAVE3_STARTED: | ||
474 | GNUNET_assert (NULL != event); | ||
475 | GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); | ||
476 | GNUNET_assert (event->details.operation_finished.operation == op); | ||
477 | GNUNET_assert (NULL == event->details.operation_finished.op_cls); | ||
478 | GNUNET_assert (NULL == event->details.operation_finished.emsg); | ||
479 | cfg3 = GNUNET_CONFIGURATION_dup (event->details.operation_finished.generic); | ||
480 | GNUNET_TESTBED_operation_done (op); | ||
481 | result = SLAVE3_GET_CONFIG_SUCCESS; | ||
482 | op = GNUNET_TESTBED_controller_link (mc, slave3, slave, cfg3, GNUNET_NO); | ||
483 | break; | ||
484 | case SLAVE3_GET_CONFIG_SUCCESS: | ||
485 | result = SLAVE3_LINK_SUCCESS; | ||
486 | GNUNET_TESTBED_operation_done (op); | ||
487 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | ||
488 | (GNUNET_TIME_UNIT_SECONDS, 3), | ||
489 | &do_shutdown, NULL); | ||
390 | break; | 490 | break; |
391 | default: | 491 | default: |
392 | GNUNET_assert (0); | 492 | GNUNET_assert (0); |
@@ -423,8 +523,17 @@ registration_cont (void *cls, const char *emsg) | |||
423 | op = GNUNET_TESTBED_controller_link (mc, slave, NULL, cfg, GNUNET_YES); | 523 | op = GNUNET_TESTBED_controller_link (mc, slave, NULL, cfg, GNUNET_YES); |
424 | GNUNET_assert (NULL != op); | 524 | GNUNET_assert (NULL != op); |
425 | break; | 525 | break; |
526 | case SLAVE2_PEER_DESTROY_SUCCESS: | ||
527 | GNUNET_assert (NULL == emsg); | ||
528 | GNUNET_assert (NULL != mc); | ||
529 | GNUNET_assert (NULL == op); | ||
530 | result = SLAVE3_REGISTERED; | ||
531 | op = GNUNET_TESTBED_controller_link (mc, slave3, NULL, cfg, GNUNET_YES); | ||
532 | GNUNET_assert (NULL != op); | ||
533 | break; | ||
426 | default: | 534 | default: |
427 | GNUNET_assert (0); | 535 | GNUNET_break (0); |
536 | do_abort_now (NULL); | ||
428 | } | 537 | } |
429 | } | 538 | } |
430 | 539 | ||
@@ -459,8 +568,10 @@ status_cb (void *cls, const struct GNUNET_CONFIGURATION_Handle *config, | |||
459 | rh = GNUNET_TESTBED_register_host (mc, slave, ®istration_cont, NULL); | 568 | rh = GNUNET_TESTBED_register_host (mc, slave, ®istration_cont, NULL); |
460 | GNUNET_assert (NULL != rh); | 569 | GNUNET_assert (NULL != rh); |
461 | break; | 570 | break; |
462 | default: | 571 | default: |
463 | GNUNET_assert (0); | 572 | GNUNET_break (0); |
573 | cp = NULL; | ||
574 | do_abort_now (NULL); | ||
464 | } | 575 | } |
465 | } | 576 | } |
466 | 577 | ||
@@ -536,7 +647,7 @@ main (int argc, char **argv) | |||
536 | GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2, | 647 | GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2, |
537 | "test_testbed_api_controllerlink", "nohelp", options, | 648 | "test_testbed_api_controllerlink", "nohelp", options, |
538 | &run, NULL); | 649 | &run, NULL); |
539 | if ((GNUNET_OK != ret) || (SUCCESS != result)) | 650 | if ((GNUNET_OK != ret) || (SLAVE3_LINK_SUCCESS != result)) |
540 | return 1; | 651 | return 1; |
541 | return 0; | 652 | return 0; |
542 | } | 653 | } |
diff --git a/src/testbed/testbed_api.c b/src/testbed/testbed_api.c index d49173d66..e0c0d0202 100644 --- a/src/testbed/testbed_api.c +++ b/src/testbed/testbed_api.c | |||
@@ -1972,7 +1972,7 @@ GNUNET_TESTBED_extract_config_ (const struct GNUNET_MessageHeader *msg) | |||
1972 | xdata = (const Bytef *) &imsg[1]; | 1972 | xdata = (const Bytef *) &imsg[1]; |
1973 | } | 1973 | } |
1974 | break; | 1974 | break; |
1975 | case GNUNET_MESSAGE_TYPE_TESTBED_GETSLAVECONFIG: | 1975 | case GNUNET_MESSAGE_TYPE_TESTBED_SLAVECONFIG: |
1976 | { | 1976 | { |
1977 | const struct GNUNET_TESTBED_SlaveConfiguration *imsg; | 1977 | const struct GNUNET_TESTBED_SlaveConfiguration *imsg; |
1978 | 1978 | ||