aboutsummaryrefslogtreecommitdiff
path: root/src/nat/nat_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nat/nat_test.c')
-rw-r--r--src/nat/nat_test.c34
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);