aboutsummaryrefslogtreecommitdiff
path: root/src/dht/test_dht_api.c
diff options
context:
space:
mode:
authorNathan S. Evans <evans@in.tum.de>2010-11-05 18:21:50 +0000
committerNathan S. Evans <evans@in.tum.de>2010-11-05 18:21:50 +0000
commit75a33a1499cf60ea4364c9aa673816629a6c1413 (patch)
tree0620da4312bb04de4d7b65074fdd3b0c3dd6cc0e /src/dht/test_dht_api.c
parent7217c601ad30760872823193d62307e7a335d226 (diff)
downloadgnunet-75a33a1499cf60ea4364c9aa673816629a6c1413.tar.gz
gnunet-75a33a1499cf60ea4364c9aa673816629a6c1413.zip
big scheduler refactoring, expect some issues
Diffstat (limited to 'src/dht/test_dht_api.c')
-rw-r--r--src/dht/test_dht_api.c53
1 files changed, 23 insertions, 30 deletions
diff --git a/src/dht/test_dht_api.c b/src/dht/test_dht_api.c
index 5eeb44d13..de3d97647 100644
--- a/src/dht/test_dht_api.c
+++ b/src/dht/test_dht_api.c
@@ -93,7 +93,6 @@ static struct PeerContext p1;
93 93
94struct RetryContext retry_context; 94struct RetryContext retry_context;
95 95
96static struct GNUNET_SCHEDULER_Handle *sched;
97 96
98static int ok; 97static int ok;
99 98
@@ -109,7 +108,7 @@ GNUNET_SCHEDULER_TaskIdentifier die_task;
109static void 108static void
110end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 109end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
111{ 110{
112 GNUNET_SCHEDULER_cancel (sched, die_task); 111 GNUNET_SCHEDULER_cancel (die_task);
113 die_task = GNUNET_SCHEDULER_NO_TASK; 112 die_task = GNUNET_SCHEDULER_NO_TASK;
114 GNUNET_DHT_disconnect (p1.dht_handle); 113 GNUNET_DHT_disconnect (p1.dht_handle);
115 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 114 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -152,7 +151,7 @@ end_badly ()
152 GNUNET_DHT_get_stop (retry_context.peer_ctx->get_handle); 151 GNUNET_DHT_get_stop (retry_context.peer_ctx->get_handle);
153 } 152 }
154 if (retry_context.retry_task != GNUNET_SCHEDULER_NO_TASK) 153 if (retry_context.retry_task != GNUNET_SCHEDULER_NO_TASK)
155 GNUNET_SCHEDULER_cancel(sched, retry_context.retry_task); 154 GNUNET_SCHEDULER_cancel(retry_context.retry_task);
156 GNUNET_DHT_disconnect (p1.dht_handle); 155 GNUNET_DHT_disconnect (p1.dht_handle);
157 ok = 1; 156 ok = 1;
158} 157}
@@ -173,8 +172,8 @@ test_find_peer_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
173 if (tc->reason == GNUNET_SCHEDULER_REASON_TIMEOUT) 172 if (tc->reason == GNUNET_SCHEDULER_REASON_TIMEOUT)
174 { 173 {
175 GNUNET_break (0); 174 GNUNET_break (0);
176 GNUNET_SCHEDULER_cancel (sched, die_task); 175 GNUNET_SCHEDULER_cancel (die_task);
177 GNUNET_SCHEDULER_add_now (sched, &end_badly, NULL); 176 GNUNET_SCHEDULER_add_now (&end_badly, NULL);
178 return; 177 return;
179 } 178 }
180 179
@@ -187,8 +186,7 @@ test_find_peer_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
187 GNUNET_DHT_set_malicious_putter (peer->dht_handle, GNUNET_TIME_UNIT_SECONDS); 186 GNUNET_DHT_set_malicious_putter (peer->dht_handle, GNUNET_TIME_UNIT_SECONDS);
188 GNUNET_DHT_set_malicious_dropper (peer->dht_handle); 187 GNUNET_DHT_set_malicious_dropper (peer->dht_handle);
189#endif 188#endif
190 GNUNET_SCHEDULER_add_delayed(sched, 189 GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 1),
191 GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 1),
192 &end, &p1); 190 &end, &p1);
193} 191}
194 192
@@ -214,11 +212,11 @@ void test_find_peer_processor (void *cls,
214 212
215 if (retry_ctx->retry_task != GNUNET_SCHEDULER_NO_TASK) 213 if (retry_ctx->retry_task != GNUNET_SCHEDULER_NO_TASK)
216 { 214 {
217 GNUNET_SCHEDULER_cancel(sched, retry_ctx->retry_task); 215 GNUNET_SCHEDULER_cancel(retry_ctx->retry_task);
218 retry_ctx->retry_task = GNUNET_SCHEDULER_NO_TASK; 216 retry_ctx->retry_task = GNUNET_SCHEDULER_NO_TASK;
219 } 217 }
220 218
221 GNUNET_SCHEDULER_add_continuation (sched, &test_find_peer_stop, &p1, 219 GNUNET_SCHEDULER_add_continuation (&test_find_peer_stop, &p1,
222 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 220 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
223 } 221 }
224 else 222 else
@@ -273,11 +271,11 @@ retry_find_peer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
273 if (retry_ctx->peer_ctx->find_peer_handle == NULL) 271 if (retry_ctx->peer_ctx->find_peer_handle == NULL)
274 { 272 {
275 GNUNET_break (0); 273 GNUNET_break (0);
276 GNUNET_SCHEDULER_cancel (sched, die_task); 274 GNUNET_SCHEDULER_cancel (die_task);
277 GNUNET_SCHEDULER_add_now (sched, &end_badly, &p1); 275 GNUNET_SCHEDULER_add_now (&end_badly, &p1);
278 return; 276 return;
279 } 277 }
280 retry_ctx->retry_task = GNUNET_SCHEDULER_add_delayed(sched, retry_ctx->next_timeout, &retry_find_peer_stop, retry_ctx); 278 retry_ctx->retry_task = GNUNET_SCHEDULER_add_delayed(retry_ctx->next_timeout, &retry_find_peer_stop, retry_ctx);
281} 279}
282 280
283/** 281/**
@@ -298,7 +296,7 @@ retry_find_peer_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
298 GNUNET_DHT_find_peer_stop(retry_ctx->peer_ctx->find_peer_handle); 296 GNUNET_DHT_find_peer_stop(retry_ctx->peer_ctx->find_peer_handle);
299 retry_ctx->peer_ctx->find_peer_handle = NULL; 297 retry_ctx->peer_ctx->find_peer_handle = NULL;
300 } 298 }
301 GNUNET_SCHEDULER_add_now (sched, &retry_find_peer, retry_ctx); 299 GNUNET_SCHEDULER_add_now (&retry_find_peer, retry_ctx);
302} 300}
303 301
304/** 302/**
@@ -330,11 +328,11 @@ test_find_peer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
330 if (peer->find_peer_handle == NULL) 328 if (peer->find_peer_handle == NULL)
331 { 329 {
332 GNUNET_break (0); 330 GNUNET_break (0);
333 GNUNET_SCHEDULER_cancel (sched, die_task); 331 GNUNET_SCHEDULER_cancel (die_task);
334 GNUNET_SCHEDULER_add_now (sched, &end_badly, &p1); 332 GNUNET_SCHEDULER_add_now (&end_badly, &p1);
335 return; 333 return;
336 } 334 }
337 retry_context.retry_task = GNUNET_SCHEDULER_add_delayed(sched, retry_context.next_timeout, &retry_find_peer_stop, &retry_context); 335 retry_context.retry_task = GNUNET_SCHEDULER_add_delayed(retry_context.next_timeout, &retry_find_peer_stop, &retry_context);
338} 336}
339 337
340/** 338/**
@@ -352,14 +350,13 @@ test_get_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
352 if (tc->reason == GNUNET_SCHEDULER_REASON_TIMEOUT) 350 if (tc->reason == GNUNET_SCHEDULER_REASON_TIMEOUT)
353 { 351 {
354 GNUNET_break (0); 352 GNUNET_break (0);
355 GNUNET_SCHEDULER_cancel (sched, die_task); 353 GNUNET_SCHEDULER_cancel (die_task);
356 GNUNET_SCHEDULER_add_now (sched, &end_badly, NULL); 354 GNUNET_SCHEDULER_add_now (&end_badly, NULL);
357 return; 355 return;
358 } 356 }
359 GNUNET_assert (peer->dht_handle != NULL); 357 GNUNET_assert (peer->dht_handle != NULL);
360 GNUNET_DHT_get_stop (peer->get_handle); 358 GNUNET_DHT_get_stop (peer->get_handle);
361 GNUNET_SCHEDULER_add_now(sched, 359 GNUNET_SCHEDULER_add_now(&test_find_peer,
362 &test_find_peer,
363 &p1); 360 &p1);
364} 361}
365 362
@@ -375,7 +372,7 @@ test_get_iterator (void *cls,
375 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 372 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
376 "test_get_iterator called (we got a result), stopping get request!\n"); 373 "test_get_iterator called (we got a result), stopping get request!\n");
377 374
378 GNUNET_SCHEDULER_add_continuation (sched, &test_get_stop, &p1, 375 GNUNET_SCHEDULER_add_continuation (&test_get_stop, &p1,
379 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 376 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
380} 377}
381 378
@@ -411,8 +408,8 @@ test_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
411 if (peer->get_handle == NULL) 408 if (peer->get_handle == NULL)
412 { 409 {
413 GNUNET_break (0); 410 GNUNET_break (0);
414 GNUNET_SCHEDULER_cancel (sched, die_task); 411 GNUNET_SCHEDULER_cancel (die_task);
415 GNUNET_SCHEDULER_add_now (sched, &end_badly, &p1); 412 GNUNET_SCHEDULER_add_now (&end_badly, &p1);
416 return; 413 return;
417 } 414 }
418 415
@@ -436,7 +433,7 @@ test_put (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
436 data = GNUNET_malloc (data_size); 433 data = GNUNET_malloc (data_size);
437 memset (data, 43, data_size); 434 memset (data, 43, data_size);
438 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Called test_put!\n"); 435 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Called test_put!\n");
439 peer->dht_handle = GNUNET_DHT_connect (sched, peer->cfg, 100); 436 peer->dht_handle = GNUNET_DHT_connect (peer->cfg, 100);
440 437
441 GNUNET_assert (peer->dht_handle != NULL); 438 GNUNET_assert (peer->dht_handle != NULL);
442 439
@@ -468,23 +465,19 @@ setup_peer (struct PeerContext *p, const char *cfgname)
468 465
469static void 466static void
470run (void *cls, 467run (void *cls,
471 struct GNUNET_SCHEDULER_Handle *s,
472 char *const *args, 468 char *const *args,
473 const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) 469 const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
474{ 470{
475 GNUNET_assert (ok == 1); 471 GNUNET_assert (ok == 1);
476 OKPP; 472 OKPP;
477 sched = s;
478 473
479 die_task = GNUNET_SCHEDULER_add_delayed (sched, 474 die_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
480 GNUNET_TIME_relative_multiply
481 (GNUNET_TIME_UNIT_MINUTES, 1), 475 (GNUNET_TIME_UNIT_MINUTES, 1),
482 &end_badly, NULL); 476 &end_badly, NULL);
483 477
484 setup_peer (&p1, "test_dht_api_peer1.conf"); 478 setup_peer (&p1, "test_dht_api_peer1.conf");
485 479
486 GNUNET_SCHEDULER_add_delayed (sched, 480 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
487 GNUNET_TIME_relative_multiply
488 (GNUNET_TIME_UNIT_SECONDS, 1), &test_put, 481 (GNUNET_TIME_UNIT_SECONDS, 1), &test_put,
489 &p1); 482 &p1);
490} 483}