diff options
Diffstat (limited to 'src/transport/test_transport_api_limited_sockets.c')
-rw-r--r-- | src/transport/test_transport_api_limited_sockets.c | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/src/transport/test_transport_api_limited_sockets.c b/src/transport/test_transport_api_limited_sockets.c index 66816671c..7ceed03aa 100644 --- a/src/transport/test_transport_api_limited_sockets.c +++ b/src/transport/test_transport_api_limited_sockets.c | |||
@@ -77,6 +77,8 @@ static GNUNET_TRANSPORT_TESTING_ConnectRequest cc; | |||
77 | 77 | ||
78 | struct GNUNET_TRANSPORT_TransmitHandle *th; | 78 | struct GNUNET_TRANSPORT_TransmitHandle *th; |
79 | 79 | ||
80 | struct TransportTestingHandle * tth; | ||
81 | |||
80 | char *cfg_file_p1; | 82 | char *cfg_file_p1; |
81 | 83 | ||
82 | char *cfg_file_p2; | 84 | char *cfg_file_p2; |
@@ -103,8 +105,8 @@ end () | |||
103 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); | 105 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); |
104 | th = NULL; | 106 | th = NULL; |
105 | 107 | ||
106 | GNUNET_TRANSPORT_TESTING_stop_peer (p1); | 108 | GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1); |
107 | GNUNET_TRANSPORT_TESTING_stop_peer (p2); | 109 | GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2); |
108 | } | 110 | } |
109 | 111 | ||
110 | static void | 112 | static void |
@@ -118,16 +120,16 @@ end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
118 | GNUNET_SCHEDULER_cancel (send_task); | 120 | GNUNET_SCHEDULER_cancel (send_task); |
119 | 121 | ||
120 | if (cc != NULL) | 122 | if (cc != NULL) |
121 | GNUNET_TRANSPORT_TESTING_connect_peers_cancel (cc); | 123 | GNUNET_TRANSPORT_TESTING_connect_peers_cancel (tth, cc); |
122 | 124 | ||
123 | if (th != NULL) | 125 | if (th != NULL) |
124 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); | 126 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); |
125 | th = NULL; | 127 | th = NULL; |
126 | 128 | ||
127 | if (p1 != NULL) | 129 | if (p1 != NULL) |
128 | GNUNET_TRANSPORT_TESTING_stop_peer (p1); | 130 | GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1); |
129 | if (p2 != NULL) | 131 | if (p2 != NULL) |
130 | GNUNET_TRANSPORT_TESTING_stop_peer (p2); | 132 | GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2); |
131 | 133 | ||
132 | ok = GNUNET_SYSERR; | 134 | ok = GNUNET_SYSERR; |
133 | } | 135 | } |
@@ -228,19 +230,42 @@ testing_connect_cb (struct PeerContext *p1, struct PeerContext *p2, void *cls) | |||
228 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &sendtask, NULL); | 230 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &sendtask, NULL); |
229 | } | 231 | } |
230 | 232 | ||
233 | void start_cb (struct PeerContext * p, | ||
234 | void *cls) | ||
235 | { | ||
236 | static int started; | ||
237 | started++; | ||
238 | |||
239 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer %u (`%s') started\n", | ||
240 | p->no, | ||
241 | GNUNET_i2s (&p->id)); | ||
242 | |||
243 | if (started != 2) | ||
244 | return; | ||
245 | |||
246 | cc = GNUNET_TRANSPORT_TESTING_connect_peers (tth, p1, p2, &testing_connect_cb, | ||
247 | NULL); | ||
248 | |||
249 | } | ||
250 | |||
231 | static void | 251 | static void |
232 | run (void *cls, char *const *args, const char *cfgfile, | 252 | run (void *cls, char *const *args, const char *cfgfile, |
233 | const struct GNUNET_CONFIGURATION_Handle *cfg) | 253 | const struct GNUNET_CONFIGURATION_Handle *cfg) |
234 | { | 254 | { |
235 | die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL); | 255 | die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL); |
236 | 256 | ||
237 | p1 = GNUNET_TRANSPORT_TESTING_start_peer (cfg_file_p1, ¬ify_receive, | 257 | tth = GNUNET_TRANSPORT_TESTING_init (); |
258 | |||
259 | p1 = GNUNET_TRANSPORT_TESTING_start_peer (tth, cfg_file_p1, 1, | ||
260 | ¬ify_receive, | ||
238 | ¬ify_connect, ¬ify_disconnect, | 261 | ¬ify_connect, ¬ify_disconnect, |
262 | &start_cb, | ||
239 | NULL); | 263 | NULL); |
240 | p2 = GNUNET_TRANSPORT_TESTING_start_peer (cfg_file_p2, ¬ify_receive, | 264 | p2 = GNUNET_TRANSPORT_TESTING_start_peer (tth, cfg_file_p2, 2, |
265 | ¬ify_receive, | ||
241 | ¬ify_connect, ¬ify_disconnect, | 266 | ¬ify_connect, ¬ify_disconnect, |
267 | &start_cb, | ||
242 | NULL); | 268 | NULL); |
243 | |||
244 | if ((p1 == NULL) || (p2 == NULL)) | 269 | if ((p1 == NULL) || (p2 == NULL)) |
245 | { | 270 | { |
246 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); | 271 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); |
@@ -249,9 +274,6 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
249 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 274 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
250 | return; | 275 | return; |
251 | } | 276 | } |
252 | |||
253 | cc = GNUNET_TRANSPORT_TESTING_connect_peers (p1, p2, &testing_connect_cb, | ||
254 | NULL); | ||
255 | } | 277 | } |
256 | 278 | ||
257 | 279 | ||