diff options
Diffstat (limited to 'src/cadet/test_cadet_local.c')
-rw-r--r-- | src/cadet/test_cadet_local.c | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/src/cadet/test_cadet_local.c b/src/cadet/test_cadet_local.c index 42663b146..a17d8f1ab 100644 --- a/src/cadet/test_cadet_local.c +++ b/src/cadet/test_cadet_local.c | |||
@@ -42,9 +42,9 @@ static int result = GNUNET_OK; | |||
42 | 42 | ||
43 | static int got_data = GNUNET_NO; | 43 | static int got_data = GNUNET_NO; |
44 | 44 | ||
45 | static struct GNUNET_SCHEDULER_Task * abort_task; | 45 | static struct GNUNET_SCHEDULER_Task *abort_task; |
46 | 46 | ||
47 | static struct GNUNET_SCHEDULER_Task * shutdown_task; | 47 | static struct GNUNET_SCHEDULER_Task *connect_task; |
48 | 48 | ||
49 | static struct GNUNET_CADET_TransmitHandle *mth; | 49 | static struct GNUNET_CADET_TransmitHandle *mth; |
50 | 50 | ||
@@ -68,20 +68,29 @@ do_shutdown (void *cls) | |||
68 | if (NULL != abort_task) | 68 | if (NULL != abort_task) |
69 | { | 69 | { |
70 | GNUNET_SCHEDULER_cancel (abort_task); | 70 | GNUNET_SCHEDULER_cancel (abort_task); |
71 | abort_task = NULL; | ||
72 | } | ||
73 | if (NULL != connect_task) | ||
74 | { | ||
75 | GNUNET_SCHEDULER_cancel (connect_task); | ||
76 | connect_task = NULL; | ||
71 | } | 77 | } |
72 | if (NULL != ch) | 78 | if (NULL != ch) |
73 | { | 79 | { |
74 | GNUNET_CADET_channel_destroy (ch); | 80 | GNUNET_CADET_channel_destroy (ch); |
81 | ch = NULL; | ||
75 | } | 82 | } |
76 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 1\n"); | 83 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 1\n"); |
77 | if (NULL != cadet_peer_1) | 84 | if (NULL != cadet_peer_1) |
78 | { | 85 | { |
79 | GNUNET_CADET_disconnect (cadet_peer_1); | 86 | GNUNET_CADET_disconnect (cadet_peer_1); |
87 | cadet_peer_1 = NULL; | ||
80 | } | 88 | } |
81 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 2\n"); | 89 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnect client 2\n"); |
82 | if (NULL != cadet_peer_2) | 90 | if (NULL != cadet_peer_2) |
83 | { | 91 | { |
84 | GNUNET_CADET_disconnect (cadet_peer_2); | 92 | GNUNET_CADET_disconnect (cadet_peer_2); |
93 | cadet_peer_2 = NULL; | ||
85 | } | 94 | } |
86 | } | 95 | } |
87 | 96 | ||
@@ -95,12 +104,7 @@ do_abort (void *cls) | |||
95 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ABORT\n"); | 104 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ABORT\n"); |
96 | result = GNUNET_SYSERR; | 105 | result = GNUNET_SYSERR; |
97 | abort_task = NULL; | 106 | abort_task = NULL; |
98 | if (NULL != shutdown_task) | 107 | GNUNET_SCHEDULER_shutdown (); |
99 | { | ||
100 | GNUNET_SCHEDULER_cancel (shutdown_task); | ||
101 | shutdown_task = NULL; | ||
102 | } | ||
103 | do_shutdown (cls); | ||
104 | } | 108 | } |
105 | 109 | ||
106 | 110 | ||
@@ -120,14 +124,10 @@ data_callback (void *cls, struct GNUNET_CADET_Channel *channel, | |||
120 | void **channel_ctx, | 124 | void **channel_ctx, |
121 | const struct GNUNET_MessageHeader *message) | 125 | const struct GNUNET_MessageHeader *message) |
122 | { | 126 | { |
123 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Data callback! Shutting down.\n"); | 127 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
128 | "Data callback! Shutting down.\n"); | ||
124 | got_data = GNUNET_YES; | 129 | got_data = GNUNET_YES; |
125 | if (NULL != shutdown_task) | 130 | GNUNET_SCHEDULER_shutdown (); |
126 | GNUNET_SCHEDULER_cancel (shutdown_task); | ||
127 | shutdown_task = | ||
128 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, | ||
129 | &do_shutdown, | ||
130 | NULL); | ||
131 | GNUNET_CADET_receive_done (channel); | 131 | GNUNET_CADET_receive_done (channel); |
132 | return GNUNET_OK; | 132 | return GNUNET_OK; |
133 | } | 133 | } |
@@ -254,12 +254,8 @@ static void | |||
254 | do_connect (void *cls) | 254 | do_connect (void *cls) |
255 | { | 255 | { |
256 | struct GNUNET_PeerIdentity id; | 256 | struct GNUNET_PeerIdentity id; |
257 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
258 | |||
259 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
260 | if (NULL != tc && 0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason)) | ||
261 | return; | ||
262 | 257 | ||
258 | connect_task = NULL; | ||
263 | GNUNET_TESTING_peer_get_identity (me, &id); | 259 | GNUNET_TESTING_peer_get_identity (me, &id); |
264 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "CONNECT BY PORT\n"); | 260 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "CONNECT BY PORT\n"); |
265 | ch = GNUNET_CADET_channel_create (cadet_peer_1, NULL, &id, 1, | 261 | ch = GNUNET_CADET_channel_create (cadet_peer_1, NULL, &id, 1, |
@@ -286,9 +282,11 @@ run (void *cls, | |||
286 | static uint32_t ports[] = {1, 0}; | 282 | static uint32_t ports[] = {1, 0}; |
287 | 283 | ||
288 | me = peer; | 284 | me = peer; |
285 | GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); | ||
289 | abort_task = | 286 | abort_task = |
290 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | 287 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply |
291 | (GNUNET_TIME_UNIT_SECONDS, 15), &do_abort, | 288 | (GNUNET_TIME_UNIT_SECONDS, 15), |
289 | &do_abort, | ||
292 | NULL); | 290 | NULL); |
293 | cadet_peer_1 = GNUNET_CADET_connect (cfg, /* configuration */ | 291 | cadet_peer_1 = GNUNET_CADET_connect (cfg, /* configuration */ |
294 | (void *) 1L, /* cls */ | 292 | (void *) 1L, /* cls */ |
@@ -305,14 +303,12 @@ run (void *cls, | |||
305 | ports); /* ports offered */ | 303 | ports); /* ports offered */ |
306 | if (NULL == cadet_peer_1 || NULL == cadet_peer_2) | 304 | if (NULL == cadet_peer_1 || NULL == cadet_peer_2) |
307 | { | 305 | { |
308 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Couldn't connect to cadet :(\n"); | 306 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
307 | "Couldn't connect to cadet :(\n"); | ||
309 | result = GNUNET_SYSERR; | 308 | result = GNUNET_SYSERR; |
309 | GNUNET_SCHEDULER_shutdown (); | ||
310 | return; | 310 | return; |
311 | } | 311 | } |
312 | else | ||
313 | { | ||
314 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "YAY! CONNECTED TO CADET :D\n"); | ||
315 | } | ||
316 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply ( | 312 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply ( |
317 | GNUNET_TIME_UNIT_SECONDS, | 313 | GNUNET_TIME_UNIT_SECONDS, |
318 | 2), | 314 | 2), |