aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport-testing.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/transport-testing.c')
-rw-r--r--src/transport/transport-testing.c45
1 files changed, 18 insertions, 27 deletions
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c
index 95f4eb671..ae878a79e 100644
--- a/src/transport/transport-testing.c
+++ b/src/transport/transport-testing.c
@@ -44,23 +44,30 @@ find_peer_context (struct GNUNET_TRANSPORT_TESTING_Handle *tth,
44} 44}
45 45
46 46
47static struct GNUNET_TRANSPORT_TESTING_ConnectRequest * 47static void
48find_connecting_context (struct GNUNET_TRANSPORT_TESTING_Handle *tth, 48notify_connecting_context (struct GNUNET_TRANSPORT_TESTING_Handle *tth,
49 struct GNUNET_TRANSPORT_TESTING_PeerContext *p1, 49 struct GNUNET_TRANSPORT_TESTING_PeerContext *p1,
50 struct GNUNET_TRANSPORT_TESTING_PeerContext *p2) 50 struct GNUNET_TRANSPORT_TESTING_PeerContext *p2)
51{ 51{
52 struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc; 52 struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc;
53 struct GNUNET_TRANSPORT_TESTING_ConnectRequest *ccn;
53 54
54 for (cc = tth->cc_head; NULL != cc; cc = cc->next) 55 for (cc = tth->cc_head; NULL != cc; cc = ccn)
55 { 56 {
57 ccn = cc->next;
56 if ( (cc->p1 == p1) && 58 if ( (cc->p1 == p1) &&
57 (cc->p2 == p2) ) 59 (cc->p2 == p2) )
58 return cc; 60 cc->p1_c = GNUNET_YES;
59 if ( (cc->p1 == p2) && 61 if ( (cc->p1 == p2) &&
60 (cc->p2 == p1) ) 62 (cc->p2 == p1) )
61 return cc; 63 cc->p2_c = GNUNET_YES;
64 if ( (cc->p1_c == GNUNET_YES) &&
65 (cc->p2_c == GNUNET_YES) )
66 {
67 cc->cb (cc->cb_cls);
68 GNUNET_TRANSPORT_TESTING_connect_peers_cancel (cc);
69 }
62 } 70 }
63 return NULL;
64} 71}
65 72
66 73
@@ -71,7 +78,6 @@ notify_connect (void *cls,
71 struct GNUNET_TRANSPORT_TESTING_PeerContext *p = cls; 78 struct GNUNET_TRANSPORT_TESTING_PeerContext *p = cls;
72 char *p2_s; 79 char *p2_s;
73 struct GNUNET_TRANSPORT_TESTING_PeerContext *p2; 80 struct GNUNET_TRANSPORT_TESTING_PeerContext *p2;
74 struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc;
75 81
76 p2 = find_peer_context (p->tth, 82 p2 = find_peer_context (p->tth,
77 peer); 83 peer);
@@ -94,24 +100,9 @@ notify_connect (void *cls,
94 p->no, 100 p->no,
95 GNUNET_i2s (&p->id)); 101 GNUNET_i2s (&p->id));
96 GNUNET_free (p2_s); 102 GNUNET_free (p2_s);
97 103 notify_connecting_context (p->tth,
98 /* Find ConnectingContext */ 104 p,
99 cc = find_connecting_context (p->tth, 105 p2);
100 p,
101 p2);
102 if (NULL == cc)
103 return;
104 if (p == cc->p1)
105 cc->p1_c = GNUNET_YES;
106 if (p == cc->p2)
107 cc->p2_c = GNUNET_YES;
108
109 if ( (cc->p1_c == GNUNET_YES) &&
110 (cc->p2_c == GNUNET_YES) )
111 {
112 cc->cb (cc->cb_cls);
113 GNUNET_TRANSPORT_TESTING_connect_peers_cancel (cc);
114 }
115} 106}
116 107
117 108