aboutsummaryrefslogtreecommitdiff
path: root/src/cadet/test_cadet_single.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cadet/test_cadet_single.c')
-rw-r--r--src/cadet/test_cadet_single.c46
1 files changed, 17 insertions, 29 deletions
diff --git a/src/cadet/test_cadet_single.c b/src/cadet/test_cadet_single.c
index 93a50c02c..b9ab7e23a 100644
--- a/src/cadet/test_cadet_single.c
+++ b/src/cadet/test_cadet_single.c
@@ -43,9 +43,9 @@ static struct GNUNET_CADET_Channel *ch2;
43 43
44static int result; 44static int result;
45 45
46static struct GNUNET_SCHEDULER_Task * abort_task; 46static struct GNUNET_SCHEDULER_Task *abort_task;
47 47
48static struct GNUNET_SCHEDULER_Task * shutdown_task; 48static struct GNUNET_SCHEDULER_Task *connect_task;
49 49
50static unsigned int repetition; 50static unsigned int repetition;
51 51
@@ -65,10 +65,17 @@ do_shutdown (void *cls)
65 if (NULL != abort_task) 65 if (NULL != abort_task)
66 { 66 {
67 GNUNET_SCHEDULER_cancel (abort_task); 67 GNUNET_SCHEDULER_cancel (abort_task);
68 abort_task = NULL;
69 }
70 if (NULL != connect_task)
71 {
72 GNUNET_SCHEDULER_cancel (connect_task);
73 connect_task = NULL;
68 } 74 }
69 if (NULL != ch1) 75 if (NULL != ch1)
70 { 76 {
71 GNUNET_CADET_channel_destroy (ch1); 77 GNUNET_CADET_channel_destroy (ch1);
78 ch1 = NULL;
72 } 79 }
73 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 1\n"); 80 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 1\n");
74 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 2\n"); 81 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 2\n");
@@ -93,22 +100,7 @@ do_abort (void *cls)
93 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ABORT\n"); 100 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ABORT\n");
94 result = GNUNET_SYSERR; 101 result = GNUNET_SYSERR;
95 abort_task = NULL; 102 abort_task = NULL;
96 if (NULL != shutdown_task) 103 GNUNET_SCHEDULER_shutdown ();
97 {
98 GNUNET_SCHEDULER_cancel (shutdown_task);
99 shutdown_task = NULL;
100 }
101 do_shutdown (cls);
102}
103
104
105static void
106finish (void)
107{
108 if (NULL != shutdown_task)
109 GNUNET_SCHEDULER_cancel (shutdown_task);
110 shutdown_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
111 &do_shutdown, NULL);
112} 104}
113 105
114 106
@@ -202,7 +194,7 @@ channel_end (void *cls, const struct GNUNET_CADET_Channel *channel,
202 ch2 = NULL; 194 ch2 = NULL;
203 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "everything fine! finishing!\n"); 195 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "everything fine! finishing!\n");
204 result = GNUNET_OK; 196 result = GNUNET_OK;
205 finish (); 197 GNUNET_SCHEDULER_shutdown ();
206 } 198 }
207} 199}
208 200
@@ -253,12 +245,8 @@ do_connect (void *cls)
253{ 245{
254 struct GNUNET_PeerIdentity id; 246 struct GNUNET_PeerIdentity id;
255 size_t size = sizeof (struct GNUNET_MessageHeader) + DATA_SIZE; 247 size_t size = sizeof (struct GNUNET_MessageHeader) + DATA_SIZE;
256 const struct GNUNET_SCHEDULER_TaskContext *tc;
257
258 tc = GNUNET_SCHEDULER_get_task_context ();
259 if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
260 return;
261 248
249 connect_task = NULL;
262 GNUNET_TESTING_peer_get_identity (me, &id); 250 GNUNET_TESTING_peer_get_identity (me, &id);
263 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "CONNECT BY PORT\n"); 251 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "CONNECT BY PORT\n");
264 ch1 = GNUNET_CADET_channel_create (cadet, NULL, &id, 1, 252 ch1 = GNUNET_CADET_channel_create (cadet, NULL, &id, 1,
@@ -284,6 +272,7 @@ run (void *cls,
284 static uint32_t ports[] = {1, 0}; 272 static uint32_t ports[] = {1, 0};
285 273
286 me = peer; 274 me = peer;
275 GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
287 abort_task = 276 abort_task =
288 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply 277 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
289 (GNUNET_TIME_UNIT_SECONDS, 15), &do_abort, 278 (GNUNET_TIME_UNIT_SECONDS, 15), &do_abort,
@@ -301,11 +290,10 @@ run (void *cls,
301 result = GNUNET_SYSERR; 290 result = GNUNET_SYSERR;
302 return; 291 return;
303 } 292 }
304 else 293 connect_task
305 { 294 = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
306 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "YAY! CONNECTED TO CADET :D\n"); 295 &do_connect,
307 } 296 NULL);
308 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &do_connect, NULL);
309} 297}
310 298
311 299