diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-02-19 13:57:34 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-02-19 13:57:34 +0100 |
commit | 360d7afad50d1af425a20e89419d2063a6a0e220 (patch) | |
tree | 1597e6257a3f5eedecac8c30ed41e81d366168ae /src/nat/gnunet-service-nat_mini.c | |
parent | af4e2e306bd703958ab0b8de1ab25fcc0a528eea (diff) | |
download | gnunet-360d7afad50d1af425a20e89419d2063a6a0e220.tar.gz gnunet-360d7afad50d1af425a20e89419d2063a6a0e220.zip |
fix zombie-fest
Diffstat (limited to 'src/nat/gnunet-service-nat_mini.c')
-rw-r--r-- | src/nat/gnunet-service-nat_mini.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/nat/gnunet-service-nat_mini.c b/src/nat/gnunet-service-nat_mini.c index e5b9d021b..8f1229be1 100644 --- a/src/nat/gnunet-service-nat_mini.c +++ b/src/nat/gnunet-service-nat_mini.c | |||
@@ -123,7 +123,7 @@ read_external_ipv4 (void *cls) | |||
123 | { | 123 | { |
124 | /* try to read more */ | 124 | /* try to read more */ |
125 | eh->off += ret; | 125 | eh->off += ret; |
126 | eh->task | 126 | eh->task |
127 | = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, | 127 | = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, |
128 | eh->r, | 128 | eh->r, |
129 | &read_external_ipv4, | 129 | &read_external_ipv4, |
@@ -233,7 +233,7 @@ GNUNET_NAT_mini_get_external_ipv4_ (GNUNET_NAT_IPCallback cb, | |||
233 | GNUNET_DISK_PIPE_END_WRITE); | 233 | GNUNET_DISK_PIPE_END_WRITE); |
234 | eh->r = GNUNET_DISK_pipe_handle (eh->opipe, | 234 | eh->r = GNUNET_DISK_pipe_handle (eh->opipe, |
235 | GNUNET_DISK_PIPE_END_READ); | 235 | GNUNET_DISK_PIPE_END_READ); |
236 | eh->task | 236 | eh->task |
237 | = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, | 237 | = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, |
238 | eh->r, | 238 | eh->r, |
239 | &read_external_ipv4, | 239 | &read_external_ipv4, |
@@ -254,6 +254,8 @@ GNUNET_NAT_mini_get_external_ipv4_cancel_ (struct GNUNET_NAT_ExternalHandle *eh) | |||
254 | { | 254 | { |
255 | (void) GNUNET_OS_process_kill (eh->eip, | 255 | (void) GNUNET_OS_process_kill (eh->eip, |
256 | SIGKILL); | 256 | SIGKILL); |
257 | GNUNET_break (GNUNET_OK == | ||
258 | GNUNET_OS_process_wait (eh->eip)); | ||
257 | GNUNET_OS_process_destroy (eh->eip); | 259 | GNUNET_OS_process_destroy (eh->eip); |
258 | } | 260 | } |
259 | if (NULL != eh->opipe) | 261 | if (NULL != eh->opipe) |
@@ -372,7 +374,7 @@ run_upnpc_r (struct GNUNET_NAT_MiniHandle *mini) | |||
372 | sizeof (pstr), | 374 | sizeof (pstr), |
373 | "%u", | 375 | "%u", |
374 | (unsigned int) mini->port); | 376 | (unsigned int) mini->port); |
375 | mini->map_cmd | 377 | mini->map_cmd |
376 | = GNUNET_OS_command_run (&process_map_output, | 378 | = GNUNET_OS_command_run (&process_map_output, |
377 | mini, | 379 | mini, |
378 | MAP_TIMEOUT, | 380 | MAP_TIMEOUT, |
@@ -516,7 +518,7 @@ do_refresh (void *cls) | |||
516 | struct GNUNET_NAT_MiniHandle *mini = cls; | 518 | struct GNUNET_NAT_MiniHandle *mini = cls; |
517 | int ac; | 519 | int ac; |
518 | 520 | ||
519 | mini->refresh_task | 521 | mini->refresh_task |
520 | = GNUNET_SCHEDULER_add_delayed (MAP_REFRESH_FREQ, | 522 | = GNUNET_SCHEDULER_add_delayed (MAP_REFRESH_FREQ, |
521 | &do_refresh, | 523 | &do_refresh, |
522 | mini); | 524 | mini); |
@@ -538,7 +540,7 @@ do_refresh (void *cls) | |||
538 | mini->refresh_cmd = NULL; | 540 | mini->refresh_cmd = NULL; |
539 | ac = GNUNET_YES; | 541 | ac = GNUNET_YES; |
540 | } | 542 | } |
541 | mini->refresh_cmd | 543 | mini->refresh_cmd |
542 | = GNUNET_OS_command_run (&process_refresh_output, | 544 | = GNUNET_OS_command_run (&process_refresh_output, |
543 | mini, | 545 | mini, |
544 | MAP_TIMEOUT, | 546 | MAP_TIMEOUT, |
@@ -582,7 +584,7 @@ process_map_output (void *cls, | |||
582 | 0, | 584 | 0, |
583 | GNUNET_NAT_ERROR_UPNPC_PORTMAP_FAILED); | 585 | GNUNET_NAT_ERROR_UPNPC_PORTMAP_FAILED); |
584 | if (NULL == mini->refresh_task) | 586 | if (NULL == mini->refresh_task) |
585 | mini->refresh_task | 587 | mini->refresh_task |
586 | = GNUNET_SCHEDULER_add_delayed (MAP_REFRESH_FREQ, | 588 | = GNUNET_SCHEDULER_add_delayed (MAP_REFRESH_FREQ, |
587 | &do_refresh, | 589 | &do_refresh, |
588 | mini); | 590 | mini); |
@@ -747,7 +749,7 @@ GNUNET_NAT_mini_map_stop (struct GNUNET_NAT_MiniHandle *mini) | |||
747 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 749 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
748 | "Unmapping port %u with UPnP\n", | 750 | "Unmapping port %u with UPnP\n", |
749 | ntohs (mini->current_addr.sin_port)); | 751 | ntohs (mini->current_addr.sin_port)); |
750 | mini->unmap_cmd | 752 | mini->unmap_cmd |
751 | = GNUNET_OS_command_run (&process_unmap_output, | 753 | = GNUNET_OS_command_run (&process_unmap_output, |
752 | mini, | 754 | mini, |
753 | UNMAP_TIMEOUT, | 755 | UNMAP_TIMEOUT, |