diff options
Diffstat (limited to 'src/transport/transport-testing-main.c')
-rw-r--r-- | src/transport/transport-testing-main.c | 445 |
1 files changed, 226 insertions, 219 deletions
diff --git a/src/transport/transport-testing-main.c b/src/transport/transport-testing-main.c index 7e7b0df4b..7581120c8 100644 --- a/src/transport/transport-testing-main.c +++ b/src/transport/transport-testing-main.c | |||
@@ -28,7 +28,8 @@ | |||
28 | /** | 28 | /** |
29 | * Closure for #connect_cb. | 29 | * Closure for #connect_cb. |
30 | */ | 30 | */ |
31 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList { | 31 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList |
32 | { | ||
32 | /** | 33 | /** |
33 | * Stored in a DLL. | 34 | * Stored in a DLL. |
34 | */ | 35 | */ |
@@ -67,41 +68,41 @@ struct GNUNET_TRANSPORT_TESTING_ConnectRequestList { | |||
67 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *` | 68 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *` |
68 | */ | 69 | */ |
69 | static void | 70 | static void |
70 | do_shutdown(void *cls) | 71 | do_shutdown (void *cls) |
71 | { | 72 | { |
72 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; | 73 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; |
73 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl; | 74 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl; |
74 | 75 | ||
75 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 76 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
76 | "Testcase shutting down\n"); | 77 | "Testcase shutting down\n"); |
77 | if (NULL != ccc->shutdown_task) | 78 | if (NULL != ccc->shutdown_task) |
78 | ccc->shutdown_task(ccc->shutdown_task_cls); | 79 | ccc->shutdown_task (ccc->shutdown_task_cls); |
79 | if (NULL != ccc->timeout_task) | 80 | if (NULL != ccc->timeout_task) |
80 | { | 81 | { |
81 | GNUNET_SCHEDULER_cancel(ccc->timeout_task); | 82 | GNUNET_SCHEDULER_cancel (ccc->timeout_task); |
82 | ccc->timeout_task = NULL; | 83 | ccc->timeout_task = NULL; |
83 | } | 84 | } |
84 | if (NULL != ccc->connect_task) | 85 | if (NULL != ccc->connect_task) |
85 | { | 86 | { |
86 | GNUNET_SCHEDULER_cancel(ccc->connect_task); | 87 | GNUNET_SCHEDULER_cancel (ccc->connect_task); |
87 | ccc->connect_task = NULL; | 88 | ccc->connect_task = NULL; |
88 | } | 89 | } |
89 | while (NULL != (crl = ccc->crl_head)) | 90 | while (NULL != (crl = ccc->crl_head)) |
90 | { | 91 | { |
91 | GNUNET_CONTAINER_DLL_remove(ccc->crl_head, | 92 | GNUNET_CONTAINER_DLL_remove (ccc->crl_head, |
92 | ccc->crl_tail, | 93 | ccc->crl_tail, |
93 | crl); | 94 | crl); |
94 | GNUNET_TRANSPORT_TESTING_connect_peers_cancel(crl->cr); | 95 | GNUNET_TRANSPORT_TESTING_connect_peers_cancel (crl->cr); |
95 | GNUNET_free(crl); | 96 | GNUNET_free (crl); |
96 | } | 97 | } |
97 | for (unsigned int i = 0; i < ccc->num_peers; i++) | 98 | for (unsigned int i = 0; i < ccc->num_peers; i++) |
99 | { | ||
100 | if (NULL != ccc->p[i]) | ||
98 | { | 101 | { |
99 | if (NULL != ccc->p[i]) | 102 | GNUNET_TRANSPORT_TESTING_stop_peer (ccc->p[i]); |
100 | { | 103 | ccc->p[i] = NULL; |
101 | GNUNET_TRANSPORT_TESTING_stop_peer(ccc->p[i]); | ||
102 | ccc->p[i] = NULL; | ||
103 | } | ||
104 | } | 104 | } |
105 | } | ||
105 | } | 106 | } |
106 | 107 | ||
107 | 108 | ||
@@ -111,15 +112,15 @@ do_shutdown(void *cls) | |||
111 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *` | 112 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *` |
112 | */ | 113 | */ |
113 | static void | 114 | static void |
114 | do_timeout(void *cls) | 115 | do_timeout (void *cls) |
115 | { | 116 | { |
116 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; | 117 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; |
117 | 118 | ||
118 | ccc->timeout_task = NULL; | 119 | ccc->timeout_task = NULL; |
119 | GNUNET_log(GNUNET_ERROR_TYPE_WARNING, | 120 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, |
120 | "Testcase timed out\n"); | 121 | "Testcase timed out\n"); |
121 | ccc->global_ret = GNUNET_SYSERR; | 122 | ccc->global_ret = GNUNET_SYSERR; |
122 | GNUNET_SCHEDULER_shutdown(); | 123 | GNUNET_SCHEDULER_shutdown (); |
123 | } | 124 | } |
124 | 125 | ||
125 | 126 | ||
@@ -128,7 +129,8 @@ do_timeout(void *cls) | |||
128 | * #connect_cb, #disconnect_cb, #my_nc and #start_cb. | 129 | * #connect_cb, #disconnect_cb, #my_nc and #start_cb. |
129 | * Allows us to identify which peer this is about. | 130 | * Allows us to identify which peer this is about. |
130 | */ | 131 | */ |
131 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext { | 132 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext |
133 | { | ||
132 | /** | 134 | /** |
133 | * Overall context of the callback. | 135 | * Overall context of the callback. |
134 | */ | 136 | */ |
@@ -144,7 +146,8 @@ struct GNUNET_TRANSPORT_TESTING_InternalPeerContext { | |||
144 | /** | 146 | /** |
145 | * Information tracked per connected peer. | 147 | * Information tracked per connected peer. |
146 | */ | 148 | */ |
147 | struct ConnectPairInfo { | 149 | struct ConnectPairInfo |
150 | { | ||
148 | /** | 151 | /** |
149 | * Peer this is about. | 152 | * Peer this is about. |
150 | */ | 153 | */ |
@@ -164,33 +167,33 @@ struct ConnectPairInfo { | |||
164 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *` | 167 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *` |
165 | */ | 168 | */ |
166 | static void | 169 | static void |
167 | connect_cb(void *cls) | 170 | connect_cb (void *cls) |
168 | { | 171 | { |
169 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl = cls; | 172 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl = cls; |
170 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = crl->ccc; | 173 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = crl->ccc; |
171 | 174 | ||
172 | GNUNET_CONTAINER_DLL_remove(ccc->crl_head, | 175 | GNUNET_CONTAINER_DLL_remove (ccc->crl_head, |
173 | ccc->crl_tail, | 176 | ccc->crl_tail, |
174 | crl); | 177 | crl); |
175 | { | 178 | { |
176 | char *p1_c = GNUNET_strdup(GNUNET_i2s(&crl->p1->id)); | 179 | char *p1_c = GNUNET_strdup (GNUNET_i2s (&crl->p1->id)); |
177 | 180 | ||
178 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 181 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
179 | "Peers connected: %u (%s) <-> %u (%s)\n", | 182 | "Peers connected: %u (%s) <-> %u (%s)\n", |
180 | crl->p1->no, | 183 | crl->p1->no, |
181 | p1_c, | 184 | p1_c, |
182 | crl->p2->no, | 185 | crl->p2->no, |
183 | GNUNET_i2s(&crl->p2->id)); | 186 | GNUNET_i2s (&crl->p2->id)); |
184 | GNUNET_free(p1_c); | 187 | GNUNET_free (p1_c); |
185 | GNUNET_free(crl); | 188 | GNUNET_free (crl); |
186 | } | 189 | } |
187 | if (NULL == ccc->crl_head) | 190 | if (NULL == ccc->crl_head) |
188 | { | 191 | { |
189 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 192 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
190 | "All connections UP, launching custom test logic.\n"); | 193 | "All connections UP, launching custom test logic.\n"); |
191 | GNUNET_SCHEDULER_add_now(ccc->connect_continuation, | 194 | GNUNET_SCHEDULER_add_now (ccc->connect_continuation, |
192 | ccc->connect_continuation_cls); | 195 | ccc->connect_continuation_cls); |
193 | } | 196 | } |
194 | } | 197 | } |
195 | 198 | ||
196 | 199 | ||
@@ -202,14 +205,16 @@ connect_cb(void *cls) | |||
202 | * @return NULL if @a peer was not found | 205 | * @return NULL if @a peer was not found |
203 | */ | 206 | */ |
204 | struct GNUNET_TRANSPORT_TESTING_PeerContext * | 207 | struct GNUNET_TRANSPORT_TESTING_PeerContext * |
205 | GNUNET_TRANSPORT_TESTING_find_peer(struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc, | 208 | GNUNET_TRANSPORT_TESTING_find_peer (struct |
206 | const struct GNUNET_PeerIdentity *peer) | 209 | GNUNET_TRANSPORT_TESTING_ConnectCheckContext |
210 | *ccc, | ||
211 | const struct GNUNET_PeerIdentity *peer) | ||
207 | { | 212 | { |
208 | for (unsigned int i = 0; i < ccc->num_peers; i++) | 213 | for (unsigned int i = 0; i < ccc->num_peers; i++) |
209 | if ((NULL != ccc->p[i]) && | 214 | if ((NULL != ccc->p[i]) && |
210 | (0 == memcmp(peer, | 215 | (0 == memcmp (peer, |
211 | &ccc->p[i]->id, | 216 | &ccc->p[i]->id, |
212 | sizeof(*peer)))) | 217 | sizeof(*peer)))) |
213 | return ccc->p[i]; | 218 | return ccc->p[i]; |
214 | return NULL; | 219 | return NULL; |
215 | } | 220 | } |
@@ -224,19 +229,19 @@ GNUNET_TRANSPORT_TESTING_find_peer(struct GNUNET_TRANSPORT_TESTING_ConnectCheckC | |||
224 | * @return closure for message handlers | 229 | * @return closure for message handlers |
225 | */ | 230 | */ |
226 | static void * | 231 | static void * |
227 | my_nc(void *cls, | 232 | my_nc (void *cls, |
228 | const struct GNUNET_PeerIdentity *peer, | 233 | const struct GNUNET_PeerIdentity *peer, |
229 | struct GNUNET_MQ_Handle *mq) | 234 | struct GNUNET_MQ_Handle *mq) |
230 | { | 235 | { |
231 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; | 236 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; |
232 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; | 237 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; |
233 | struct ConnectPairInfo *cpi; | 238 | struct ConnectPairInfo *cpi; |
234 | 239 | ||
235 | if (NULL != ccc->nc) | 240 | if (NULL != ccc->nc) |
236 | ccc->nc(ccc->cls, | 241 | ccc->nc (ccc->cls, |
237 | ccc->p[ipi->off], | 242 | ccc->p[ipi->off], |
238 | peer); | 243 | peer); |
239 | cpi = GNUNET_new(struct ConnectPairInfo); | 244 | cpi = GNUNET_new (struct ConnectPairInfo); |
240 | cpi->ipi = ipi; | 245 | cpi->ipi = ipi; |
241 | cpi->sender = peer; /* valid until disconnect */ | 246 | cpi->sender = peer; /* valid until disconnect */ |
242 | return cpi; | 247 | return cpi; |
@@ -251,19 +256,19 @@ my_nc(void *cls, | |||
251 | * @param custom_cls return value from @my_nc | 256 | * @param custom_cls return value from @my_nc |
252 | */ | 257 | */ |
253 | static void | 258 | static void |
254 | my_nd(void *cls, | 259 | my_nd (void *cls, |
255 | const struct GNUNET_PeerIdentity *peer, | 260 | const struct GNUNET_PeerIdentity *peer, |
256 | void *custom_cls) | 261 | void *custom_cls) |
257 | { | 262 | { |
258 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; | 263 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; |
259 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; | 264 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; |
260 | struct ConnectPairInfo *cpi = custom_cls; | 265 | struct ConnectPairInfo *cpi = custom_cls; |
261 | 266 | ||
262 | if (NULL != ccc->nd) | 267 | if (NULL != ccc->nd) |
263 | ccc->nd(ccc->cls, | 268 | ccc->nd (ccc->cls, |
264 | ccc->p[ipi->off], | 269 | ccc->p[ipi->off], |
265 | peer); | 270 | peer); |
266 | GNUNET_free(cpi); | 271 | GNUNET_free (cpi); |
267 | } | 272 | } |
268 | 273 | ||
269 | 274 | ||
@@ -275,8 +280,8 @@ my_nd(void *cls, | |||
275 | * @return #GNUNET_OK (all messages are fine) | 280 | * @return #GNUNET_OK (all messages are fine) |
276 | */ | 281 | */ |
277 | static int | 282 | static int |
278 | check_test(void *cls, | 283 | check_test (void *cls, |
279 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) | 284 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) |
280 | { | 285 | { |
281 | return GNUNET_OK; | 286 | return GNUNET_OK; |
282 | } | 287 | } |
@@ -289,18 +294,18 @@ check_test(void *cls, | |||
289 | * @param message message we received | 294 | * @param message message we received |
290 | */ | 295 | */ |
291 | static void | 296 | static void |
292 | handle_test(void *cls, | 297 | handle_test (void *cls, |
293 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) | 298 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) |
294 | { | 299 | { |
295 | struct ConnectPairInfo *cpi = cls; | 300 | struct ConnectPairInfo *cpi = cls; |
296 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi; | 301 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi; |
297 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; | 302 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; |
298 | 303 | ||
299 | if (NULL != ccc->rec) | 304 | if (NULL != ccc->rec) |
300 | ccc->rec(ccc->cls, | 305 | ccc->rec (ccc->cls, |
301 | ccc->p[ipi->off], | 306 | ccc->p[ipi->off], |
302 | cpi->sender, | 307 | cpi->sender, |
303 | message); | 308 | message); |
304 | } | 309 | } |
305 | 310 | ||
306 | 311 | ||
@@ -312,8 +317,8 @@ handle_test(void *cls, | |||
312 | * @return #GNUNET_OK (all messages are fine) | 317 | * @return #GNUNET_OK (all messages are fine) |
313 | */ | 318 | */ |
314 | static int | 319 | static int |
315 | check_test2(void *cls, | 320 | check_test2 (void *cls, |
316 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) | 321 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) |
317 | { | 322 | { |
318 | return GNUNET_OK; | 323 | return GNUNET_OK; |
319 | } | 324 | } |
@@ -326,18 +331,18 @@ check_test2(void *cls, | |||
326 | * @param message message we received | 331 | * @param message message we received |
327 | */ | 332 | */ |
328 | static void | 333 | static void |
329 | handle_test2(void *cls, | 334 | handle_test2 (void *cls, |
330 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) | 335 | const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) |
331 | { | 336 | { |
332 | struct ConnectPairInfo *cpi = cls; | 337 | struct ConnectPairInfo *cpi = cls; |
333 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi; | 338 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi; |
334 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; | 339 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; |
335 | 340 | ||
336 | if (NULL != ccc->rec) | 341 | if (NULL != ccc->rec) |
337 | ccc->rec(ccc->cls, | 342 | ccc->rec (ccc->cls, |
338 | ccc->p[ipi->off], | 343 | ccc->p[ipi->off], |
339 | cpi->sender, | 344 | cpi->sender, |
340 | message); | 345 | message); |
341 | } | 346 | } |
342 | 347 | ||
343 | 348 | ||
@@ -347,41 +352,42 @@ handle_test2(void *cls, | |||
347 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext` | 352 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext` |
348 | */ | 353 | */ |
349 | static void | 354 | static void |
350 | do_connect(void *cls) | 355 | do_connect (void *cls) |
351 | { | 356 | { |
352 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; | 357 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; |
353 | 358 | ||
354 | ccc->connect_task = NULL; | 359 | ccc->connect_task = NULL; |
355 | for (unsigned int i = 0; i < ccc->num_peers; i++) | 360 | for (unsigned int i = 0; i < ccc->num_peers; i++) |
356 | for (unsigned int j = (ccc->bi_directional ? 0 : i + 1); j < ccc->num_peers; j++) | 361 | for (unsigned int j = (ccc->bi_directional ? 0 : i + 1); j < ccc->num_peers; |
362 | j++) | ||
363 | { | ||
364 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl; | ||
365 | |||
366 | if (i == j) | ||
367 | continue; | ||
368 | crl = GNUNET_new (struct GNUNET_TRANSPORT_TESTING_ConnectRequestList); | ||
369 | GNUNET_CONTAINER_DLL_insert (ccc->crl_head, | ||
370 | ccc->crl_tail, | ||
371 | crl); | ||
372 | crl->ccc = ccc; | ||
373 | crl->p1 = ccc->p[i]; | ||
374 | crl->p2 = ccc->p[j]; | ||
357 | { | 375 | { |
358 | struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl; | 376 | char *sender_c = GNUNET_strdup (GNUNET_i2s (&ccc->p[0]->id)); |
359 | 377 | ||
360 | if (i == j) | 378 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
361 | continue; | 379 | "Test tries to connect peer %u (`%s') -> peer %u (`%s')\n", |
362 | crl = GNUNET_new(struct GNUNET_TRANSPORT_TESTING_ConnectRequestList); | 380 | ccc->p[0]->no, |
363 | GNUNET_CONTAINER_DLL_insert(ccc->crl_head, | 381 | sender_c, |
364 | ccc->crl_tail, | 382 | ccc->p[1]->no, |
365 | crl); | 383 | GNUNET_i2s (&ccc->p[1]->id)); |
366 | crl->ccc = ccc; | 384 | GNUNET_free (sender_c); |
367 | crl->p1 = ccc->p[i]; | ||
368 | crl->p2 = ccc->p[j]; | ||
369 | { | ||
370 | char *sender_c = GNUNET_strdup(GNUNET_i2s(&ccc->p[0]->id)); | ||
371 | |||
372 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | ||
373 | "Test tries to connect peer %u (`%s') -> peer %u (`%s')\n", | ||
374 | ccc->p[0]->no, | ||
375 | sender_c, | ||
376 | ccc->p[1]->no, | ||
377 | GNUNET_i2s(&ccc->p[1]->id)); | ||
378 | GNUNET_free(sender_c); | ||
379 | } | ||
380 | crl->cr = GNUNET_TRANSPORT_TESTING_connect_peers(ccc->p[i], | ||
381 | ccc->p[j], | ||
382 | &connect_cb, | ||
383 | crl); | ||
384 | } | 385 | } |
386 | crl->cr = GNUNET_TRANSPORT_TESTING_connect_peers (ccc->p[i], | ||
387 | ccc->p[j], | ||
388 | &connect_cb, | ||
389 | crl); | ||
390 | } | ||
385 | } | 391 | } |
386 | 392 | ||
387 | 393 | ||
@@ -393,32 +399,32 @@ do_connect(void *cls) | |||
393 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *` | 399 | * @param cls our `struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *` |
394 | */ | 400 | */ |
395 | static void | 401 | static void |
396 | start_cb(void *cls) | 402 | start_cb (void *cls) |
397 | { | 403 | { |
398 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; | 404 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; |
399 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; | 405 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; |
400 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p = ccc->p[ipi->off]; | 406 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p = ccc->p[ipi->off]; |
401 | 407 | ||
402 | ccc->started++; | 408 | ccc->started++; |
403 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 409 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
404 | "Peer %u (`%s') started\n", | 410 | "Peer %u (`%s') started\n", |
405 | p->no, | 411 | p->no, |
406 | GNUNET_i2s(&p->id)); | 412 | GNUNET_i2s (&p->id)); |
407 | if (ccc->started != ccc->num_peers) | 413 | if (ccc->started != ccc->num_peers) |
408 | return; | 414 | return; |
409 | if (NULL != ccc->pre_connect_task) | 415 | if (NULL != ccc->pre_connect_task) |
410 | { | 416 | { |
411 | /* Run the custom per-connect job, then give it a second to | 417 | /* Run the custom per-connect job, then give it a second to |
412 | go into effect before we continue connecting peers. */ | 418 | go into effect before we continue connecting peers. */ |
413 | ccc->pre_connect_task(ccc->pre_connect_task_cls); | 419 | ccc->pre_connect_task (ccc->pre_connect_task_cls); |
414 | ccc->connect_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_SECONDS, | 420 | ccc->connect_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, |
415 | &do_connect, | 421 | &do_connect, |
416 | ccc); | 422 | ccc); |
417 | } | 423 | } |
418 | else | 424 | else |
419 | { | 425 | { |
420 | do_connect(ccc); | 426 | do_connect (ccc); |
421 | } | 427 | } |
422 | } | 428 | } |
423 | 429 | ||
424 | 430 | ||
@@ -433,52 +439,52 @@ start_cb(void *cls) | |||
433 | * @param cfg configuration | 439 | * @param cfg configuration |
434 | */ | 440 | */ |
435 | static void | 441 | static void |
436 | connect_check_run(void *cls, | 442 | connect_check_run (void *cls, |
437 | char *const *args, | 443 | char *const *args, |
438 | const char *cfgfile, | 444 | const char *cfgfile, |
439 | const struct GNUNET_CONFIGURATION_Handle *cfg) | 445 | const struct GNUNET_CONFIGURATION_Handle *cfg) |
440 | { | 446 | { |
441 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; | 447 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; |
442 | int ok; | 448 | int ok; |
443 | 449 | ||
444 | ccc->cfg = cfg; | 450 | ccc->cfg = cfg; |
445 | ccc->timeout_task = GNUNET_SCHEDULER_add_delayed(ccc->timeout, | 451 | ccc->timeout_task = GNUNET_SCHEDULER_add_delayed (ccc->timeout, |
446 | &do_timeout, | 452 | &do_timeout, |
447 | ccc); | 453 | ccc); |
448 | GNUNET_SCHEDULER_add_shutdown(&do_shutdown, | 454 | GNUNET_SCHEDULER_add_shutdown (&do_shutdown, |
449 | ccc); | 455 | ccc); |
450 | ok = GNUNET_OK; | 456 | ok = GNUNET_OK; |
451 | for (unsigned int i = 0; i < ccc->num_peers; i++) | 457 | for (unsigned int i = 0; i < ccc->num_peers; i++) |
452 | { | 458 | { |
453 | struct GNUNET_MQ_MessageHandler handlers[] = { | 459 | struct GNUNET_MQ_MessageHandler handlers[] = { |
454 | GNUNET_MQ_hd_var_size(test, | 460 | GNUNET_MQ_hd_var_size (test, |
455 | GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE, | 461 | GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE, |
456 | struct GNUNET_TRANSPORT_TESTING_TestMessage, | 462 | struct GNUNET_TRANSPORT_TESTING_TestMessage, |
457 | NULL), | 463 | NULL), |
458 | GNUNET_MQ_hd_var_size(test2, | 464 | GNUNET_MQ_hd_var_size (test2, |
459 | GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE2, | 465 | GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE2, |
460 | struct GNUNET_TRANSPORT_TESTING_TestMessage, | 466 | struct GNUNET_TRANSPORT_TESTING_TestMessage, |
461 | NULL), | 467 | NULL), |
462 | GNUNET_MQ_handler_end() | 468 | GNUNET_MQ_handler_end () |
463 | }; | 469 | }; |
464 | ccc->p[i] = GNUNET_TRANSPORT_TESTING_start_peer(ccc->tth, | 470 | ccc->p[i] = GNUNET_TRANSPORT_TESTING_start_peer (ccc->tth, |
465 | ccc->cfg_files[i], | 471 | ccc->cfg_files[i], |
466 | i + 1, | 472 | i + 1, |
467 | handlers, | 473 | handlers, |
468 | &my_nc, | 474 | &my_nc, |
469 | &my_nd, | 475 | &my_nd, |
470 | &ccc->ip[i], | 476 | &ccc->ip[i], |
471 | &start_cb, | 477 | &start_cb, |
472 | &ccc->ip[i]); | 478 | &ccc->ip[i]); |
473 | if (NULL == ccc->p[i]) | 479 | if (NULL == ccc->p[i]) |
474 | ok = GNUNET_SYSERR; | 480 | ok = GNUNET_SYSERR; |
475 | } | 481 | } |
476 | if (GNUNET_OK != ok) | 482 | if (GNUNET_OK != ok) |
477 | { | 483 | { |
478 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 484 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
479 | "Fail! Could not start peers!\n"); | 485 | "Fail! Could not start peers!\n"); |
480 | GNUNET_SCHEDULER_shutdown(); | 486 | GNUNET_SCHEDULER_shutdown (); |
481 | } | 487 | } |
482 | } | 488 | } |
483 | 489 | ||
484 | 490 | ||
@@ -498,12 +504,13 @@ connect_check_run(void *cls, | |||
498 | * @return #GNUNET_SYSERR on error | 504 | * @return #GNUNET_SYSERR on error |
499 | */ | 505 | */ |
500 | int | 506 | int |
501 | GNUNET_TRANSPORT_TESTING_connect_check(void *cls, | 507 | GNUNET_TRANSPORT_TESTING_connect_check (void *cls, |
502 | struct GNUNET_TRANSPORT_TESTING_Handle *tth_, | 508 | struct GNUNET_TRANSPORT_TESTING_Handle * |
503 | const char *test_plugin_, | 509 | tth_, |
504 | const char *test_name_, | 510 | const char *test_plugin_, |
505 | unsigned int num_peers, | 511 | const char *test_name_, |
506 | char *cfg_files[]) | 512 | unsigned int num_peers, |
513 | char *cfg_files[]) | ||
507 | { | 514 | { |
508 | static struct GNUNET_GETOPT_CommandLineOption options[] = { | 515 | static struct GNUNET_GETOPT_CommandLineOption options[] = { |
509 | GNUNET_GETOPT_OPTION_END | 516 | GNUNET_GETOPT_OPTION_END |
@@ -511,10 +518,10 @@ GNUNET_TRANSPORT_TESTING_connect_check(void *cls, | |||
511 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; | 518 | struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; |
512 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p[num_peers]; | 519 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p[num_peers]; |
513 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext ip[num_peers]; | 520 | struct GNUNET_TRANSPORT_TESTING_InternalPeerContext ip[num_peers]; |
514 | char * argv[] = { | 521 | char *argv[] = { |
515 | (char *)test_name_, | 522 | (char *) test_name_, |
516 | "-c", | 523 | "-c", |
517 | (char *)ccc->config_file, | 524 | (char *) ccc->config_file, |
518 | NULL | 525 | NULL |
519 | }; | 526 | }; |
520 | 527 | ||
@@ -527,18 +534,18 @@ GNUNET_TRANSPORT_TESTING_connect_check(void *cls, | |||
527 | ccc->p = p; | 534 | ccc->p = p; |
528 | ccc->ip = ip; | 535 | ccc->ip = ip; |
529 | for (unsigned int i = 0; i < num_peers; i++) | 536 | for (unsigned int i = 0; i < num_peers; i++) |
530 | { | 537 | { |
531 | ip[i].off = i; | 538 | ip[i].off = i; |
532 | ip[i].ccc = ccc; | 539 | ip[i].ccc = ccc; |
533 | } | 540 | } |
534 | if (GNUNET_OK != | 541 | if (GNUNET_OK != |
535 | GNUNET_PROGRAM_run((sizeof(argv) / sizeof(char *)) - 1, | 542 | GNUNET_PROGRAM_run ((sizeof(argv) / sizeof(char *)) - 1, |
536 | argv, | 543 | argv, |
537 | test_name_, | 544 | test_name_, |
538 | "nohelp", | 545 | "nohelp", |
539 | options, | 546 | options, |
540 | &connect_check_run, | 547 | &connect_check_run, |
541 | ccc)) | 548 | ccc)) |
542 | return GNUNET_SYSERR; | 549 | return GNUNET_SYSERR; |
543 | return ccc->global_ret; | 550 | return ccc->global_ret; |
544 | } | 551 | } |
@@ -555,11 +562,11 @@ GNUNET_TRANSPORT_TESTING_connect_check(void *cls, | |||
555 | * @return #GNUNET_OK on success | 562 | * @return #GNUNET_OK on success |
556 | */ | 563 | */ |
557 | int | 564 | int |
558 | GNUNET_TRANSPORT_TESTING_main_(const char *argv0, | 565 | GNUNET_TRANSPORT_TESTING_main_ (const char *argv0, |
559 | const char *filename, | 566 | const char *filename, |
560 | unsigned int num_peers, | 567 | unsigned int num_peers, |
561 | GNUNET_TRANSPORT_TESTING_CheckCallback check, | 568 | GNUNET_TRANSPORT_TESTING_CheckCallback check, |
562 | void *check_cls) | 569 | void *check_cls) |
563 | { | 570 | { |
564 | struct GNUNET_TRANSPORT_TESTING_Handle *tth; | 571 | struct GNUNET_TRANSPORT_TESTING_Handle *tth; |
565 | char *test_name; | 572 | char *test_name; |
@@ -569,36 +576,36 @@ GNUNET_TRANSPORT_TESTING_main_(const char *argv0, | |||
569 | int ret; | 576 | int ret; |
570 | 577 | ||
571 | ret = GNUNET_OK; | 578 | ret = GNUNET_OK; |
572 | test_name = GNUNET_TRANSPORT_TESTING_get_test_name(argv0); | 579 | test_name = GNUNET_TRANSPORT_TESTING_get_test_name (argv0); |
573 | GNUNET_log_setup(test_name, | 580 | GNUNET_log_setup (test_name, |
574 | "WARNING", | 581 | "WARNING", |
575 | NULL); | 582 | NULL); |
576 | test_source = GNUNET_TRANSPORT_TESTING_get_test_source_name(filename); | 583 | test_source = GNUNET_TRANSPORT_TESTING_get_test_source_name (filename); |
577 | test_plugin = GNUNET_TRANSPORT_TESTING_get_test_plugin_name(argv0, | 584 | test_plugin = GNUNET_TRANSPORT_TESTING_get_test_plugin_name (argv0, |
578 | test_source); | 585 | test_source); |
579 | for (unsigned int i = 0; i < num_peers; i++) | 586 | for (unsigned int i = 0; i < num_peers; i++) |
580 | cfg_names[i] = GNUNET_TRANSPORT_TESTING_get_config_name(argv0, | 587 | cfg_names[i] = GNUNET_TRANSPORT_TESTING_get_config_name (argv0, |
581 | i + 1); | 588 | i + 1); |
582 | tth = GNUNET_TRANSPORT_TESTING_init(); | 589 | tth = GNUNET_TRANSPORT_TESTING_init (); |
583 | if (NULL == tth) | 590 | if (NULL == tth) |
584 | { | 591 | { |
585 | ret = GNUNET_SYSERR; | 592 | ret = GNUNET_SYSERR; |
586 | } | 593 | } |
587 | else | 594 | else |
588 | { | 595 | { |
589 | ret = check(check_cls, | 596 | ret = check (check_cls, |
590 | tth, | 597 | tth, |
591 | test_plugin, | 598 | test_plugin, |
592 | test_name, | 599 | test_name, |
593 | num_peers, | 600 | num_peers, |
594 | cfg_names); | 601 | cfg_names); |
595 | GNUNET_TRANSPORT_TESTING_done(tth); | 602 | GNUNET_TRANSPORT_TESTING_done (tth); |
596 | } | 603 | } |
597 | for (unsigned int i = 0; i < num_peers; i++) | 604 | for (unsigned int i = 0; i < num_peers; i++) |
598 | GNUNET_free(cfg_names[i]); | 605 | GNUNET_free (cfg_names[i]); |
599 | GNUNET_free(test_source); | 606 | GNUNET_free (test_source); |
600 | GNUNET_free_non_null(test_plugin); | 607 | GNUNET_free_non_null (test_plugin); |
601 | GNUNET_free(test_name); | 608 | GNUNET_free (test_name); |
602 | return ret; | 609 | return ret; |
603 | } | 610 | } |
604 | 611 | ||