diff options
Diffstat (limited to 'src/transport/test_transport_api_restart_1peer.c')
-rw-r--r-- | src/transport/test_transport_api_restart_1peer.c | 76 |
1 files changed, 45 insertions, 31 deletions
diff --git a/src/transport/test_transport_api_restart_1peer.c b/src/transport/test_transport_api_restart_1peer.c index 50f9ebb9c..e814ad817 100644 --- a/src/transport/test_transport_api_restart_1peer.c +++ b/src/transport/test_transport_api_restart_1peer.c | |||
@@ -51,11 +51,11 @@ static struct GNUNET_SCHEDULER_Task *send_task; | |||
51 | 51 | ||
52 | static struct GNUNET_ATS_ConnectivitySuggestHandle *ats_sh; | 52 | static struct GNUNET_ATS_ConnectivitySuggestHandle *ats_sh; |
53 | 53 | ||
54 | static struct PeerContext *p1; | 54 | static struct GNUNET_TRANSPORT_TESTING_PeerContext *p1; |
55 | 55 | ||
56 | static int p1_connected; | 56 | static int p1_connected; |
57 | 57 | ||
58 | static struct PeerContext *p2; | 58 | static struct GNUNET_TRANSPORT_TESTING_PeerContext *p2; |
59 | 59 | ||
60 | static int p2_connected; | 60 | static int p2_connected; |
61 | 61 | ||
@@ -63,7 +63,7 @@ static struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc; | |||
63 | 63 | ||
64 | static struct GNUNET_TRANSPORT_TransmitHandle *th; | 64 | static struct GNUNET_TRANSPORT_TransmitHandle *th; |
65 | 65 | ||
66 | static struct GNUNET_TRANSPORT_TESTING_handle *tth; | 66 | static struct GNUNET_TRANSPORT_TESTING_Handle *tth; |
67 | 67 | ||
68 | static char *cfg_file_p1; | 68 | static char *cfg_file_p1; |
69 | 69 | ||
@@ -100,12 +100,12 @@ end () | |||
100 | } | 100 | } |
101 | if (NULL != p1) | 101 | if (NULL != p1) |
102 | { | 102 | { |
103 | GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1); | 103 | GNUNET_TRANSPORT_TESTING_stop_peer (p1); |
104 | p1 = NULL; | 104 | p1 = NULL; |
105 | } | 105 | } |
106 | if (NULL != p2) | 106 | if (NULL != p2) |
107 | { | 107 | { |
108 | GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2); | 108 | GNUNET_TRANSPORT_TESTING_stop_peer (p2); |
109 | p2 = NULL; | 109 | p2 = NULL; |
110 | } | 110 | } |
111 | } | 111 | } |
@@ -130,7 +130,7 @@ end_badly (void *cls) | |||
130 | { | 130 | { |
131 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 131 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
132 | _("Fail! Could not connect peers\n")); | 132 | _("Fail! Could not connect peers\n")); |
133 | GNUNET_TRANSPORT_TESTING_connect_peers_cancel (tth, cc); | 133 | GNUNET_TRANSPORT_TESTING_connect_peers_cancel (cc); |
134 | cc = NULL; | 134 | cc = NULL; |
135 | } | 135 | } |
136 | end (); | 136 | end (); |
@@ -139,7 +139,7 @@ end_badly (void *cls) | |||
139 | 139 | ||
140 | 140 | ||
141 | static void | 141 | static void |
142 | restart_cb (struct PeerContext *p, void *cls) | 142 | restart_cb (struct GNUNET_TRANSPORT_TESTING_PeerContext *p, void *cls) |
143 | { | 143 | { |
144 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 144 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
145 | "Restarted peer %u (`%4s'), issuing reconnect\n", | 145 | "Restarted peer %u (`%4s'), issuing reconnect\n", |
@@ -152,15 +152,13 @@ restart_cb (struct PeerContext *p, void *cls) | |||
152 | 152 | ||
153 | 153 | ||
154 | static void | 154 | static void |
155 | restart (struct PeerContext *p, | 155 | restart (struct GNUNET_TRANSPORT_TESTING_PeerContext *p) |
156 | const char *cfg_file) | ||
157 | { | 156 | { |
158 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 157 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
159 | "Restarting peer %u (`%4s')\n", | 158 | "Restarting peer %u (`%4s')\n", |
160 | p->no, | 159 | p->no, |
161 | GNUNET_i2s (&p->id)); | 160 | GNUNET_i2s (&p->id)); |
162 | GNUNET_TRANSPORT_TESTING_restart_peer (p, | 161 | GNUNET_TRANSPORT_TESTING_restart_peer (p, |
163 | cfg_file, | ||
164 | &restart_cb, | 162 | &restart_cb, |
165 | p); | 163 | p); |
166 | } | 164 | } |
@@ -171,8 +169,8 @@ notify_receive (void *cls, | |||
171 | const struct GNUNET_PeerIdentity *peer, | 169 | const struct GNUNET_PeerIdentity *peer, |
172 | const struct GNUNET_MessageHeader *message) | 170 | const struct GNUNET_MessageHeader *message) |
173 | { | 171 | { |
174 | struct PeerContext *p = cls; | 172 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p = cls; |
175 | struct PeerContext *t = NULL; | 173 | struct GNUNET_TRANSPORT_TESTING_PeerContext *t = NULL; |
176 | 174 | ||
177 | if (0 == memcmp (peer, &p1->id, sizeof (struct GNUNET_PeerIdentity))) | 175 | if (0 == memcmp (peer, &p1->id, sizeof (struct GNUNET_PeerIdentity))) |
178 | t = p1; | 176 | t = p1; |
@@ -194,7 +192,7 @@ notify_receive (void *cls, | |||
194 | if (restarted == GNUNET_NO) | 192 | if (restarted == GNUNET_NO) |
195 | { | 193 | { |
196 | restarted = GNUNET_YES; | 194 | restarted = GNUNET_YES; |
197 | restart (p1, cfg_file_p1); | 195 | restart (p1); |
198 | return; | 196 | return; |
199 | } | 197 | } |
200 | else | 198 | else |
@@ -219,7 +217,7 @@ notify_receive (void *cls, | |||
219 | static size_t | 217 | static size_t |
220 | notify_ready (void *cls, size_t size, void *buf) | 218 | notify_ready (void *cls, size_t size, void *buf) |
221 | { | 219 | { |
222 | struct PeerContext *p = cls; | 220 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p = cls; |
223 | struct GNUNET_MessageHeader *hdr; | 221 | struct GNUNET_MessageHeader *hdr; |
224 | 222 | ||
225 | th = NULL; | 223 | th = NULL; |
@@ -284,8 +282,8 @@ notify_connect (void *cls, | |||
284 | static int c; | 282 | static int c; |
285 | 283 | ||
286 | c++; | 284 | c++; |
287 | struct PeerContext *p = cls; | 285 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p = cls; |
288 | struct PeerContext *t = NULL; | 286 | struct GNUNET_TRANSPORT_TESTING_PeerContext *t = NULL; |
289 | 287 | ||
290 | if (0 == memcmp (peer, &p1->id, sizeof (struct GNUNET_PeerIdentity))) | 288 | if (0 == memcmp (peer, &p1->id, sizeof (struct GNUNET_PeerIdentity))) |
291 | { | 289 | { |
@@ -306,7 +304,9 @@ notify_connect (void *cls, | |||
306 | t->no, GNUNET_i2s (peer)); | 304 | t->no, GNUNET_i2s (peer)); |
307 | GNUNET_free (ps); | 305 | GNUNET_free (ps); |
308 | 306 | ||
309 | if ((restarted == GNUNET_YES) && ((p1_connected == GNUNET_YES) && (p2_connected == GNUNET_YES))) | 307 | if ( (restarted == GNUNET_YES) && |
308 | (p1_connected == GNUNET_YES) && | ||
309 | (p2_connected == GNUNET_YES) ) | ||
310 | { | 310 | { |
311 | /* Peer was restarted and we received 3 connect messages (2 from first connect, 1 from reconnect) */ | 311 | /* Peer was restarted and we received 3 connect messages (2 from first connect, 1 from reconnect) */ |
312 | send_task = GNUNET_SCHEDULER_add_now (&sendtask, NULL); | 312 | send_task = GNUNET_SCHEDULER_add_now (&sendtask, NULL); |
@@ -317,7 +317,7 @@ notify_connect (void *cls, | |||
317 | static void | 317 | static void |
318 | notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) | 318 | notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) |
319 | { | 319 | { |
320 | struct PeerContext *p = cls; | 320 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p = cls; |
321 | 321 | ||
322 | if ( (NULL != p1) && | 322 | if ( (NULL != p1) && |
323 | (0 == memcmp (peer, &p1->id, sizeof (struct GNUNET_PeerIdentity)))) | 323 | (0 == memcmp (peer, &p1->id, sizeof (struct GNUNET_PeerIdentity)))) |
@@ -344,13 +344,15 @@ notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) | |||
344 | send_task = NULL; | 344 | send_task = NULL; |
345 | } | 345 | } |
346 | 346 | ||
347 | |||
347 | static void | 348 | static void |
348 | testing_connect_cb (struct PeerContext *p1, struct PeerContext *p2, void *cls) | 349 | testing_connect_cb (void *cls) |
349 | { | 350 | { |
350 | cc = NULL; | 351 | cc = NULL; |
351 | char *p1_c = GNUNET_strdup (GNUNET_i2s (&p1->id)); | 352 | char *p1_c = GNUNET_strdup (GNUNET_i2s (&p1->id)); |
352 | 353 | ||
353 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peers connected: %u (%s) <-> %u (%s)\n", | 354 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
355 | "Peers connected: %u (%s) <-> %u (%s)\n", | ||
354 | p1->no, p1_c, p2->no, GNUNET_i2s (&p2->id)); | 356 | p1->no, p1_c, p2->no, GNUNET_i2s (&p2->id)); |
355 | GNUNET_free (p1_c); | 357 | GNUNET_free (p1_c); |
356 | 358 | ||
@@ -360,7 +362,7 @@ testing_connect_cb (struct PeerContext *p1, struct PeerContext *p2, void *cls) | |||
360 | 362 | ||
361 | 363 | ||
362 | static void | 364 | static void |
363 | start_cb (struct PeerContext *p, void *cls) | 365 | start_cb (struct GNUNET_TRANSPORT_TESTING_PeerContext *p, void *cls) |
364 | { | 366 | { |
365 | static int started; | 367 | static int started; |
366 | 368 | ||
@@ -379,7 +381,9 @@ start_cb (struct PeerContext *p, void *cls) | |||
379 | p1->no, sender_c, p2->no, GNUNET_i2s (&p2->id)); | 381 | p1->no, sender_c, p2->no, GNUNET_i2s (&p2->id)); |
380 | GNUNET_free (sender_c); | 382 | GNUNET_free (sender_c); |
381 | 383 | ||
382 | cc = GNUNET_TRANSPORT_TESTING_connect_peers (tth, p1, p2, &testing_connect_cb, | 384 | cc = GNUNET_TRANSPORT_TESTING_connect_peers (p1, |
385 | p2, | ||
386 | &testing_connect_cb, | ||
383 | NULL); | 387 | NULL); |
384 | 388 | ||
385 | } | 389 | } |
@@ -391,22 +395,32 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
391 | die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL); | 395 | die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL); |
392 | p1_connected = GNUNET_NO; | 396 | p1_connected = GNUNET_NO; |
393 | p2_connected = GNUNET_NO; | 397 | p2_connected = GNUNET_NO; |
394 | p1 = GNUNET_TRANSPORT_TESTING_start_peer (tth, cfg_file_p1, 1, | 398 | p1 = GNUNET_TRANSPORT_TESTING_start_peer (tth, |
395 | ¬ify_receive, ¬ify_connect, | 399 | cfg_file_p1, |
396 | ¬ify_disconnect, &start_cb, | 400 | 1, |
401 | ¬ify_receive, | ||
402 | ¬ify_connect, | ||
403 | ¬ify_disconnect, | ||
404 | &start_cb, | ||
397 | NULL); | 405 | NULL); |
398 | 406 | ||
399 | p2 = GNUNET_TRANSPORT_TESTING_start_peer (tth, cfg_file_p2, 2, | 407 | p2 = GNUNET_TRANSPORT_TESTING_start_peer (tth, |
400 | ¬ify_receive, ¬ify_connect, | 408 | cfg_file_p2, |
401 | ¬ify_disconnect, &start_cb, | 409 | 2, |
410 | ¬ify_receive, | ||
411 | ¬ify_connect, | ||
412 | ¬ify_disconnect, | ||
413 | &start_cb, | ||
402 | NULL); | 414 | NULL); |
403 | 415 | ||
404 | if ((p1 == NULL) || (p2 == NULL)) | 416 | if ((p1 == NULL) || (p2 == NULL)) |
405 | { | 417 | { |
406 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); | 418 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
419 | "Fail! Could not start peers!\n"); | ||
407 | if (die_task != NULL) | 420 | if (die_task != NULL) |
408 | GNUNET_SCHEDULER_cancel (die_task); | 421 | GNUNET_SCHEDULER_cancel (die_task); |
409 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 422 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, |
423 | NULL); | ||
410 | return; | 424 | return; |
411 | } | 425 | } |
412 | } | 426 | } |
@@ -438,7 +452,7 @@ main (int argc, char *argv[]) | |||
438 | { | 452 | { |
439 | int ret; | 453 | int ret; |
440 | 454 | ||
441 | GNUNET_TRANSPORT_TESTING_get_test_name (argv[0], &test_name); | 455 | test_name = GNUNET_TRANSPORT_TESTING_get_test_name (argv[0]); |
442 | GNUNET_log_setup (test_name, | 456 | GNUNET_log_setup (test_name, |
443 | "WARNING", | 457 | "WARNING", |
444 | NULL); | 458 | NULL); |