aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/transport/transport-testing.c37
-rw-r--r--src/transport/transport-testing.h6
2 files changed, 40 insertions, 3 deletions
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c
index 0c628a731..18a002d02 100644
--- a/src/transport/transport-testing.c
+++ b/src/transport/transport-testing.c
@@ -246,6 +246,7 @@ GNUNET_TRANSPORT_TESTING_start_peer (const char *cfgname,
246void 246void
247GNUNET_TRANSPORT_TESTING_stop_peer (struct PeerContext *p) 247GNUNET_TRANSPORT_TESTING_stop_peer (struct PeerContext *p)
248{ 248{
249 GNUNET_assert (p != NULL);
249 if (p->th != NULL) 250 if (p->th != NULL)
250 GNUNET_TRANSPORT_disconnect (p->th); 251 GNUNET_TRANSPORT_disconnect (p->th);
251 252
@@ -257,12 +258,15 @@ GNUNET_TRANSPORT_TESTING_stop_peer (struct PeerContext *p)
257 GNUNET_OS_process_close (p->arm_proc); 258 GNUNET_OS_process_close (p->arm_proc);
258 p->arm_proc = NULL; 259 p->arm_proc = NULL;
259 } 260 }
260 GNUNET_CONFIGURATION_destroy (p->cfg);
261 if (p->servicehome != NULL) 261 if (p->servicehome != NULL)
262 { 262 {
263 GNUNET_DISK_directory_remove (p->servicehome); 263 GNUNET_DISK_directory_remove (p->servicehome);
264 GNUNET_free (p->servicehome); 264 GNUNET_free (p->servicehome);
265 } 265 }
266
267 if (p->cfg != NULL)
268 GNUNET_CONFIGURATION_destroy (p->cfg);
269
266 GNUNET_free (p); 270 GNUNET_free (p);
267} 271}
268 272
@@ -274,8 +278,9 @@ GNUNET_TRANSPORT_TESTING_stop_peer (struct PeerContext *p)
274 * @param p2 peer 2 278 * @param p2 peer 2
275 * @param cb the callback to call 279 * @param cb the callback to call
276 * @param cb_cls callback cls 280 * @param cb_cls callback cls
281 * @return connect context
277 */ 282 */
278void 283GNUNET_TRANSPORT_TESTING_ConnectRequest
279GNUNET_TRANSPORT_TESTING_connect_peers (struct PeerContext *p1, 284GNUNET_TRANSPORT_TESTING_connect_peers (struct PeerContext *p1,
280 struct PeerContext *p2, 285 struct PeerContext *p2,
281 GNUNET_TRANSPORT_TESTING_connect_cb cb, 286 GNUNET_TRANSPORT_TESTING_connect_cb cb,
@@ -308,8 +313,36 @@ GNUNET_TRANSPORT_TESTING_connect_peers (struct PeerContext *p1,
308 GNUNET_TRANSPORT_get_hello (cc->th_p2, &exchange_hello_last, cc); 313 GNUNET_TRANSPORT_get_hello (cc->th_p2, &exchange_hello_last, cc);
309 314
310 cc->tct = GNUNET_SCHEDULER_add_now (&try_connect, cc); 315 cc->tct = GNUNET_SCHEDULER_add_now (&try_connect, cc);
316 return cc;
311} 317}
312 318
319/**
320 * Cancels a peer connect request
321 * before.
322 * @param p1 peer 1
323 * @param p2 peer 2
324 * @param cb the callback to call
325 * @param cb_cls callback cls
326 * @return connect context
327 */
328void
329GNUNET_TRANSPORT_TESTING_connect_peers_cancel (GNUNET_TRANSPORT_TESTING_ConnectRequest ccr)
330{
331 struct ConnectingContext *cc = ccr;
332 /* clean up */
333 GNUNET_TRANSPORT_get_hello_cancel (cc->th_p2, &exchange_hello_last, cc);
334 GNUNET_TRANSPORT_get_hello_cancel (cc->th_p1, &exchange_hello, cc);
335
336 if (cc->tct != GNUNET_SCHEDULER_NO_TASK)
337 GNUNET_SCHEDULER_cancel (cc->tct);
338
339 cc->tct = GNUNET_SCHEDULER_NO_TASK;
340
341 GNUNET_TRANSPORT_disconnect (cc->th_p1);
342 GNUNET_TRANSPORT_disconnect (cc->th_p2);
343
344 GNUNET_free (cc);
345}
313 346
314 347
315/* end of transport_testing.h */ 348/* end of transport_testing.h */
diff --git a/src/transport/transport-testing.h b/src/transport/transport-testing.h
index d5a75d143..672a435aa 100644
--- a/src/transport/transport-testing.h
+++ b/src/transport/transport-testing.h
@@ -33,6 +33,7 @@
33#include "gnunet_program_lib.h" 33#include "gnunet_program_lib.h"
34#include "gnunet_transport_service.h" 34#include "gnunet_transport_service.h"
35 35
36#define GNUNET_TRANSPORT_TESTING_ConnectRequest void *
36 37
37/** 38/**
38 * Context for a single peer 39 * Context for a single peer
@@ -102,10 +103,13 @@ GNUNET_TRANSPORT_TESTING_stop_peer (struct PeerContext *pc);
102 * @param cb the callback to call 103 * @param cb the callback to call
103 * @param cb_cls callback cls 104 * @param cb_cls callback cls
104 */ 105 */
105void 106GNUNET_TRANSPORT_TESTING_ConnectRequest
106GNUNET_TRANSPORT_TESTING_connect_peers (struct PeerContext *p1, 107GNUNET_TRANSPORT_TESTING_connect_peers (struct PeerContext *p1,
107 struct PeerContext *p2, 108 struct PeerContext *p2,
108 GNUNET_TRANSPORT_TESTING_connect_cb cb, 109 GNUNET_TRANSPORT_TESTING_connect_cb cb,
109 void *cls); 110 void *cls);
110 111
112void
113GNUNET_TRANSPORT_TESTING_connect_peers_cancel (void *cc);
114
111/* end of transport_testing.h */ 115/* end of transport_testing.h */