aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/transport-testing.c50
-rw-r--r--src/transport/transport-testing.h11
2 files changed, 47 insertions, 14 deletions
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c
index 036fff9e4..45ce444f1 100644
--- a/src/transport/transport-testing.c
+++ b/src/transport/transport-testing.c
@@ -33,6 +33,7 @@ struct PeerContext *
33find_peer_context_by_pc ( struct TransportTestingHandle *tth, 33find_peer_context_by_pc ( struct TransportTestingHandle *tth,
34 struct PeerContext *p) 34 struct PeerContext *p)
35{ 35{
36 GNUNET_assert (tth != NULL);
36 struct PeerContext * t = tth->p_head; 37 struct PeerContext * t = tth->p_head;
37 38
38 while (t != NULL) 39 while (t != NULL)
@@ -50,6 +51,7 @@ struct PeerContext *
50find_peer_context ( struct TransportTestingHandle *tth, 51find_peer_context ( struct TransportTestingHandle *tth,
51 const struct GNUNET_PeerIdentity *peer) 52 const struct GNUNET_PeerIdentity *peer)
52{ 53{
54 GNUNET_assert (tth != NULL);
53 struct PeerContext * t = tth->p_head; 55 struct PeerContext * t = tth->p_head;
54 56
55 while (t != NULL) 57 while (t != NULL)
@@ -67,6 +69,7 @@ find_connecting_context ( struct TransportTestingHandle *tth,
67 struct PeerContext *p1, 69 struct PeerContext *p1,
68 struct PeerContext * p2) 70 struct PeerContext * p2)
69{ 71{
72 GNUNET_assert (tth != NULL);
70 struct ConnectingContext * cc = tth->cc_head; 73 struct ConnectingContext * cc = tth->cc_head;
71 74
72 while (cc != NULL) 75 while (cc != NULL)
@@ -88,6 +91,7 @@ notify_connect (void *cls, const struct GNUNET_PeerIdentity *peer,
88{ 91{
89 struct PeerContext *p = cls; 92 struct PeerContext *p = cls;
90 /* Find PeerContext */ 93 /* Find PeerContext */
94 GNUNET_assert (p->tth != NULL);
91 struct PeerContext * p2 = find_peer_context (p->tth, peer); 95 struct PeerContext * p2 = find_peer_context (p->tth, peer);
92 96
93 if (p == NULL) 97 if (p == NULL)
@@ -132,6 +136,7 @@ notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
132{ 136{
133 struct PeerContext *p = cls; 137 struct PeerContext *p = cls;
134 /* Find PeerContext */ 138 /* Find PeerContext */
139 GNUNET_assert (p->tth != NULL);
135 struct PeerContext * p2 = find_peer_context (p->tth, peer); 140 struct PeerContext * p2 = find_peer_context (p->tth, peer);
136 141
137 char * p2_s; 142 char * p2_s;
@@ -184,12 +189,18 @@ get_hello (void *cb_cls, const struct GNUNET_MessageHeader *message)
184 (const struct GNUNET_HELLO_Message *) message, 189 (const struct GNUNET_HELLO_Message *) message,
185 size); 190 size);
186 191
192#if VERBOSE
193 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-testing",
194 "New HELLO for peer %u (`%s') with size %u\n",
195 p->no, GNUNET_i2s (&p->id), size);
196#endif
197
187 if (p->start_cb != NULL) 198 if (p->start_cb != NULL)
188 { 199 {
189#if VERBOSE 200#if VERBOSE
190 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-testing", 201 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-testing",
191 "Peer %u (`%s') successfully started\n", 202 "Peer %u (`%s') successfully started\n",
192 p->no, GNUNET_i2s (&p->id), size); 203 p->no, GNUNET_i2s (&p->id));
193#endif 204#endif
194 p->start_cb(p, p->cb_cls); 205 p->start_cb(p, p->cb_cls);
195 p->start_cb = NULL; 206 p->start_cb = NULL;
@@ -241,6 +252,7 @@ GNUNET_TRANSPORT_TESTING_start_peer (struct TransportTestingHandle * tth,
241 GNUNET_TRANSPORT_TESTING_start_cb start_cb, 252 GNUNET_TRANSPORT_TESTING_start_cb start_cb,
242 void *cb_cls) 253 void *cb_cls)
243{ 254{
255 GNUNET_assert (tth != NULL);
244 if (GNUNET_DISK_file_test (cfgname) == GNUNET_NO) 256 if (GNUNET_DISK_file_test (cfgname) == GNUNET_NO)
245 { 257 {
246 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "transport-testing", 258 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "transport-testing",
@@ -342,7 +354,7 @@ GNUNET_TRANSPORT_TESTING_stop_peer (struct TransportTestingHandle * tth,
342 * p1 then tries to connect to p2 354 * p1 then tries to connect to p2
343 * @param p1 peer 1 355 * @param p1 peer 1
344 * @param p2 peer 2 356 * @param p2 peer 2
345 * @param cb the callback to call 357 * @param cb the callback to call when both peers notified that they are connected
346 * @param cb_cls callback cls 358 * @param cb_cls callback cls
347 * @return connect context 359 * @return connect context
348 */ 360 */
@@ -354,6 +366,8 @@ GNUNET_TRANSPORT_TESTING_connect_peers (struct TransportTestingHandle * tth,
354 void *cb_cls) 366 void *cb_cls)
355 367
356{ 368{
369 GNUNET_assert (tth != NULL);
370
357 struct ConnectingContext *cc = 371 struct ConnectingContext *cc =
358 GNUNET_malloc (sizeof (struct ConnectingContext)); 372 GNUNET_malloc (sizeof (struct ConnectingContext));
359 373
@@ -367,12 +381,7 @@ GNUNET_TRANSPORT_TESTING_connect_peers (struct TransportTestingHandle * tth,
367 cc->cb_cls = cb_cls; 381 cc->cb_cls = cb_cls;
368 382
369 cc->th_p1 = p1->th; 383 cc->th_p1 = p1->th;
370 /* GNUNET_TRANSPORT_connect (cc->p1->cfg, NULL, cc, NULL,
371 &notify_connect_internal, NULL);*/
372
373 cc->th_p2 = p2->th; 384 cc->th_p2 = p2->th;
374 /* GNUNET_TRANSPORT_connect (cc->p2->cfg, NULL, cc, NULL,
375 &notify_connect_internal, NULL);*/
376 385
377 GNUNET_assert (cc->th_p1 != NULL); 386 GNUNET_assert (cc->th_p1 != NULL);
378 GNUNET_assert (cc->th_p2 != NULL); 387 GNUNET_assert (cc->th_p2 != NULL);
@@ -380,9 +389,10 @@ GNUNET_TRANSPORT_TESTING_connect_peers (struct TransportTestingHandle * tth,
380 GNUNET_CONTAINER_DLL_insert (tth->cc_head, tth->cc_tail, cc); 389 GNUNET_CONTAINER_DLL_insert (tth->cc_head, tth->cc_tail, cc);
381 390
382 cc->tct = GNUNET_SCHEDULER_add_now (&try_connect, cc); 391 cc->tct = GNUNET_SCHEDULER_add_now (&try_connect, cc);
383 return cc; 392 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "transport-testing",
384 393 "connect request %X!\n", cc);
385 394
395 return cc;
386} 396}
387 397
388/** 398/**
@@ -396,16 +406,24 @@ void GNUNET_TRANSPORT_TESTING_connect_peers_cancel
396{ 406{
397 struct ConnectingContext *cc = ccr; 407 struct ConnectingContext *cc = ccr;
398 408
409 GNUNET_assert (tth != NULL);
410
411 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-testing",
412 "Canceling connect request %X!\n", cc);
399 if (cc->tct != GNUNET_SCHEDULER_NO_TASK) 413 if (cc->tct != GNUNET_SCHEDULER_NO_TASK)
400 GNUNET_SCHEDULER_cancel (cc->tct); 414 GNUNET_SCHEDULER_cancel (cc->tct);
401 415
402 cc->tct = GNUNET_SCHEDULER_NO_TASK; 416 cc->tct = GNUNET_SCHEDULER_NO_TASK;
403 417
404 GNUNET_CONTAINER_DLL_remove (tth->cc_head, tth->cc_tail, cc); 418 GNUNET_CONTAINER_DLL_remove (tth->cc_head, tth->cc_tail, cc);
405
406 GNUNET_free (cc); 419 GNUNET_free (cc);
407} 420}
408 421
422
423/**
424 * Clean up the transport testing
425 * @param tth transport testing handle
426 */
409void 427void
410GNUNET_TRANSPORT_TESTING_done (struct TransportTestingHandle * tth) 428GNUNET_TRANSPORT_TESTING_done (struct TransportTestingHandle * tth)
411{ 429{
@@ -413,11 +431,14 @@ GNUNET_TRANSPORT_TESTING_done (struct TransportTestingHandle * tth)
413 struct ConnectingContext *ct = NULL; 431 struct ConnectingContext *ct = NULL;
414 struct PeerContext *p = tth->p_head; 432 struct PeerContext *p = tth->p_head;
415 struct PeerContext *t = NULL; 433 struct PeerContext *t = NULL;
416 while (cc != NULL) 434
435 GNUNET_assert (tth != NULL);
436
437 while (cc != tth->cc_tail)
417 { 438 {
418 ct = cc->next; 439 ct = cc->next;
419 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "transport-testing", 440 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, "transport-testing",
420 "Developer forgot to cancel connect request!\n"); 441 "Developer forgot to cancel connect request %X!\n", cc);
421 GNUNET_TRANSPORT_TESTING_connect_peers_cancel(tth, cc); 442 GNUNET_TRANSPORT_TESTING_connect_peers_cancel(tth, cc);
422 cc = ct; 443 cc = ct;
423 } 444 }
@@ -432,8 +453,13 @@ GNUNET_TRANSPORT_TESTING_done (struct TransportTestingHandle * tth)
432 } 453 }
433 454
434 GNUNET_free (tth); 455 GNUNET_free (tth);
456 tth = NULL;
435} 457}
436 458
459/**
460 * Initialize the transport testing
461 * @return transport testing handle
462 */
437struct TransportTestingHandle * 463struct TransportTestingHandle *
438GNUNET_TRANSPORT_TESTING_init () 464GNUNET_TRANSPORT_TESTING_init ()
439{ 465{
diff --git a/src/transport/transport-testing.h b/src/transport/transport-testing.h
index 2aaff26b0..94cfaf59a 100644
--- a/src/transport/transport-testing.h
+++ b/src/transport/transport-testing.h
@@ -160,7 +160,7 @@ GNUNET_TRANSPORT_TESTING_stop_peer (struct TransportTestingHandle * tth,
160 * before. 160 * before.
161 * @param p1 peer 1 161 * @param p1 peer 1
162 * @param p2 peer 2 162 * @param p2 peer 2
163 * @param cb the callback to call 163 * @param cb the callback to call when both peers notified that they are connected
164 * @param cb_cls callback cls 164 * @param cb_cls callback cls
165 * @return a connect request handle 165 * @return a connect request handle
166 */ 166 */
@@ -180,10 +180,17 @@ void
180GNUNET_TRANSPORT_TESTING_connect_peers_cancel (struct TransportTestingHandle *, 180GNUNET_TRANSPORT_TESTING_connect_peers_cancel (struct TransportTestingHandle *,
181 void *cc); 181 void *cc);
182 182
183 183/**
184 * Clean up the transport testing
185 * @param tth transport testing handle
186 */
184void 187void
185GNUNET_TRANSPORT_TESTING_done (struct TransportTestingHandle * tth); 188GNUNET_TRANSPORT_TESTING_done (struct TransportTestingHandle * tth);
186 189
190/**
191 * Initialize the transport testing
192 * @return transport testing handle
193 */
187struct TransportTestingHandle * 194struct TransportTestingHandle *
188GNUNET_TRANSPORT_TESTING_init (); 195GNUNET_TRANSPORT_TESTING_init ();
189 196