diff options
Diffstat (limited to 'src/cadet/test_cadet_single.c')
-rw-r--r-- | src/cadet/test_cadet_single.c | 46 |
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 | ||
44 | static int result; | 44 | static int result; |
45 | 45 | ||
46 | static struct GNUNET_SCHEDULER_Task * abort_task; | 46 | static struct GNUNET_SCHEDULER_Task *abort_task; |
47 | 47 | ||
48 | static struct GNUNET_SCHEDULER_Task * shutdown_task; | 48 | static struct GNUNET_SCHEDULER_Task *connect_task; |
49 | 49 | ||
50 | static unsigned int repetition; | 50 | static 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 | |||
105 | static void | ||
106 | finish (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 | ||