[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r29931 - msh/src
From: |
gnunet |
Subject: |
[GNUnet-SVN] r29931 - msh/src |
Date: |
Mon, 7 Oct 2013 17:25:26 +0200 |
Author: harsha
Date: 2013-10-07 17:25:26 +0200 (Mon, 07 Oct 2013)
New Revision: 29931
Modified:
msh/src/test_pty.c
Log:
- register signal handler for SIGCHLD after calling grantpt()
Modified: msh/src/test_pty.c
===================================================================
--- msh/src/test_pty.c 2013-10-07 15:01:23 UTC (rev 29930)
+++ msh/src/test_pty.c 2013-10-07 15:25:26 UTC (rev 29931)
@@ -22,6 +22,11 @@
#define BUF_SIZE 512
/**
+ * handler for SIGCHLD.l Register it just before forking
+ */
+static struct GNUNET_SIGNAL_Context *shc_chld;
+
+/**
* Task to kill the child
*/
static GNUNET_SCHEDULER_TaskIdentifier child_death_task;
@@ -355,6 +360,8 @@
GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "ptsname");
goto err_ret;
}
+ shc_chld =
+ GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, &sighandler_child_death);
ret = fork();
if (-1 == ret)
{
@@ -582,10 +589,10 @@
GNUNET_break (0);
return;
}
- addrlen = res[0].ai_addrlen;
+ addrlen = res->ai_addrlen;
addr = GNUNET_malloc (addrlen);
- memcpy (addr, res[0].ai_addr, addrlen);
- af_family = res[0].ai_family;
+ memcpy (addr, res->ai_addr, addrlen);
+ af_family = res->ai_family;
freeaddrinfo (res);
conn = GNUNET_CONNECTION_create_from_sockaddr (af_family, addr, addrlen);
GNUNET_free (addr);
@@ -614,7 +621,6 @@
int main(int argc, char *const argv[])
{
- struct GNUNET_SIGNAL_Context *shc_chld;
static const struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_OPTION_END
};
@@ -628,14 +634,13 @@
GNUNET_break (0);
return 1;
}
- shc_chld =
- GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, &sighandler_child_death);
ret =
GNUNET_PROGRAM_run (argc, argv, "test-pty",
gettext_noop
("msh-waiter test program"),
options, &run, NULL);
- GNUNET_SIGNAL_handler_uninstall (shc_chld);
+ if (NULL != shc_chld)
+ GNUNET_SIGNAL_handler_uninstall (shc_chld);
GNUNET_DISK_pipe_close (sigpipe);
GNUNET_free ((void *) argv);
return ret;
@@ -736,7 +741,6 @@
GNUNET_SCHEDULER_run (&run, NULL);
(void) wait (NULL);
GNUNET_DISK_file_close (chld_io);
- GNUNET_SIGNAL_handler_uninstall (shc_chld);
return 0;
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r29931 - msh/src,
gnunet <=