diff options
Diffstat (limited to 'src/nat/nat_test.c')
-rw-r--r-- | src/nat/nat_test.c | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/src/nat/nat_test.c b/src/nat/nat_test.c index 33f81d800..b2f22781e 100644 --- a/src/nat/nat_test.c +++ b/src/nat/nat_test.c | |||
@@ -252,7 +252,9 @@ do_read (void *cls) | |||
252 | tc = GNUNET_SCHEDULER_get_task_context (); | 252 | tc = GNUNET_SCHEDULER_get_task_context (); |
253 | na->rtask = NULL; | 253 | na->rtask = NULL; |
254 | tst = na->h; | 254 | tst = na->h; |
255 | GNUNET_CONTAINER_DLL_remove (tst->na_head, tst->na_tail, na); | 255 | GNUNET_CONTAINER_DLL_remove (tst->na_head, |
256 | tst->na_tail, | ||
257 | na); | ||
256 | if ((NULL != tc->write_ready) && | 258 | if ((NULL != tc->write_ready) && |
257 | (GNUNET_NETWORK_fdset_isset (tc->read_ready, na->sock)) && | 259 | (GNUNET_NETWORK_fdset_isset (tc->read_ready, na->sock)) && |
258 | (sizeof (data) == | 260 | (sizeof (data) == |
@@ -284,14 +286,10 @@ do_accept (void *cls) | |||
284 | struct GNUNET_NAT_Test *tst = cls; | 286 | struct GNUNET_NAT_Test *tst = cls; |
285 | struct GNUNET_NETWORK_Handle *s; | 287 | struct GNUNET_NETWORK_Handle *s; |
286 | struct NatActivity *wl; | 288 | struct NatActivity *wl; |
287 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
288 | 289 | ||
289 | tst->ltask = NULL; | ||
290 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
291 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
292 | return; | ||
293 | tst->ltask = | 290 | tst->ltask = |
294 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, tst->lsock, | 291 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
292 | tst->lsock, | ||
295 | &do_accept, tst); | 293 | &do_accept, tst); |
296 | s = GNUNET_NETWORK_socket_accept (tst->lsock, NULL, NULL); | 294 | s = GNUNET_NETWORK_socket_accept (tst->lsock, NULL, NULL); |
297 | if (NULL == s) | 295 | if (NULL == s) |
@@ -308,7 +306,9 @@ do_accept (void *cls) | |||
308 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 306 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
309 | wl->sock, | 307 | wl->sock, |
310 | &do_read, wl); | 308 | &do_read, wl); |
311 | GNUNET_CONTAINER_DLL_insert (tst->na_head, tst->na_tail, wl); | 309 | GNUNET_CONTAINER_DLL_insert (tst->na_head, |
310 | tst->na_tail, | ||
311 | wl); | ||
312 | } | 312 | } |
313 | 313 | ||
314 | 314 | ||
@@ -474,13 +474,15 @@ GNUNET_NAT_test_start (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
474 | GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_listen (nh->lsock, 5)); | 474 | GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_listen (nh->lsock, 5)); |
475 | nh->ltask = | 475 | nh->ltask = |
476 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 476 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
477 | nh->lsock, &do_accept, nh); | 477 | nh->lsock, |
478 | &do_accept, nh); | ||
478 | } | 479 | } |
479 | else | 480 | else |
480 | { | 481 | { |
481 | nh->ltask = | 482 | nh->ltask = |
482 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 483 | GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
483 | nh->lsock, &do_udp_read, nh); | 484 | nh->lsock, |
485 | &do_udp_read, nh); | ||
484 | } | 486 | } |
485 | LOG (GNUNET_ERROR_TYPE_INFO, | 487 | LOG (GNUNET_ERROR_TYPE_INFO, |
486 | "NAT test listens on port %u (%s)\n", | 488 | "NAT test listens on port %u (%s)\n", |
@@ -508,7 +510,9 @@ GNUNET_NAT_test_start (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
508 | return nh; | 510 | return nh; |
509 | } | 511 | } |
510 | } | 512 | } |
511 | nh->ttask = GNUNET_SCHEDULER_add_delayed (timeout, &do_timeout, nh); | 513 | nh->ttask = GNUNET_SCHEDULER_add_delayed (timeout, |
514 | &do_timeout, | ||
515 | nh); | ||
512 | return nh; | 516 | return nh; |
513 | } | 517 | } |
514 | 518 | ||
@@ -528,13 +532,17 @@ GNUNET_NAT_test_stop (struct GNUNET_NAT_Test *tst) | |||
528 | "Stopping NAT test\n"); | 532 | "Stopping NAT test\n"); |
529 | while (NULL != (cpos = tst->ca_head)) | 533 | while (NULL != (cpos = tst->ca_head)) |
530 | { | 534 | { |
531 | GNUNET_CONTAINER_DLL_remove (tst->ca_head, tst->ca_tail, cpos); | 535 | GNUNET_CONTAINER_DLL_remove (tst->ca_head, |
536 | tst->ca_tail, | ||
537 | cpos); | ||
532 | GNUNET_CLIENT_disconnect (cpos->client); | 538 | GNUNET_CLIENT_disconnect (cpos->client); |
533 | GNUNET_free (cpos); | 539 | GNUNET_free (cpos); |
534 | } | 540 | } |
535 | while (NULL != (pos = tst->na_head)) | 541 | while (NULL != (pos = tst->na_head)) |
536 | { | 542 | { |
537 | GNUNET_CONTAINER_DLL_remove (tst->na_head, tst->na_tail, pos); | 543 | GNUNET_CONTAINER_DLL_remove (tst->na_head, |
544 | tst->na_tail, | ||
545 | pos); | ||
538 | GNUNET_SCHEDULER_cancel (pos->rtask); | 546 | GNUNET_SCHEDULER_cancel (pos->rtask); |
539 | GNUNET_NETWORK_socket_close (pos->sock); | 547 | GNUNET_NETWORK_socket_close (pos->sock); |
540 | GNUNET_free (pos); | 548 | GNUNET_free (pos); |