diff options
Diffstat (limited to 'src/transport/transport-testing.c')
-rw-r--r-- | src/transport/transport-testing.c | 45 |
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 | ||
47 | static struct GNUNET_TRANSPORT_TESTING_ConnectRequest * | 47 | static void |
48 | find_connecting_context (struct GNUNET_TRANSPORT_TESTING_Handle *tth, | 48 | notify_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 | ||