aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_transport_api_restart_1peer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/test_transport_api_restart_1peer.c')
-rw-r--r--src/transport/test_transport_api_restart_1peer.c76
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
52static struct GNUNET_ATS_ConnectivitySuggestHandle *ats_sh; 52static struct GNUNET_ATS_ConnectivitySuggestHandle *ats_sh;
53 53
54static struct PeerContext *p1; 54static struct GNUNET_TRANSPORT_TESTING_PeerContext *p1;
55 55
56static int p1_connected; 56static int p1_connected;
57 57
58static struct PeerContext *p2; 58static struct GNUNET_TRANSPORT_TESTING_PeerContext *p2;
59 59
60static int p2_connected; 60static int p2_connected;
61 61
@@ -63,7 +63,7 @@ static struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc;
63 63
64static struct GNUNET_TRANSPORT_TransmitHandle *th; 64static struct GNUNET_TRANSPORT_TransmitHandle *th;
65 65
66static struct GNUNET_TRANSPORT_TESTING_handle *tth; 66static struct GNUNET_TRANSPORT_TESTING_Handle *tth;
67 67
68static char *cfg_file_p1; 68static 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
141static void 141static void
142restart_cb (struct PeerContext *p, void *cls) 142restart_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
154static void 154static void
155restart (struct PeerContext *p, 155restart (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,
219static size_t 217static size_t
220notify_ready (void *cls, size_t size, void *buf) 218notify_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,
317static void 317static void
318notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) 318notify_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
347static void 348static void
348testing_connect_cb (struct PeerContext *p1, struct PeerContext *p2, void *cls) 349testing_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
362static void 364static void
363start_cb (struct PeerContext *p, void *cls) 365start_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 &notify_receive, &notify_connect, 399 cfg_file_p1,
396 &notify_disconnect, &start_cb, 400 1,
401 &notify_receive,
402 &notify_connect,
403 &notify_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 &notify_receive, &notify_connect, 408 cfg_file_p2,
401 &notify_disconnect, &start_cb, 409 2,
410 &notify_receive,
411 &notify_connect,
412 &notify_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);