From 2b49c944a1e05f99e21dff60e02bb9f2866c14a3 Mon Sep 17 00:00:00 2001 From: short <> Date: Sat, 16 Mar 2002 19:16:54 +0000 Subject: [PATCH] Implemented aborting on exit of child process of --gnokiid --- gnokii/gnokii.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnokii/gnokii.c b/gnokii/gnokii.c index caec03c..e6692ab 100644 --- a/gnokii/gnokii.c +++ b/gnokii/gnokii.c @@ -4119,6 +4119,12 @@ int monitormode(int argc, char *argv[]) #ifdef UCLINUX +static void gnokiid_SIGCHLD(int signo) +{ + fprintf (stderr, _("Child process exited, aborting...\n")); + exit(2); +} + static int gnokiid(int argc, char *argv[]) { bool DebugMode; /* When true, run in debug mode */ @@ -4154,15 +4160,15 @@ static int gnokiid(int argc, char *argv[]) #ifdef DEBUG fprintf (stderr, _("Spawning gnokiid startup child process \"%s\"...\n"), *argv); #endif - /* default action for SIGCHLD is SIG_IGN, should be OK */ + signal(SIGCHLD,gnokiid_SIGCHLD); errno=0; switch (vfork()) { case -1: /* vfork() failure */ - fprintf (stderr, _("vfork() failed! (%m)\n")); + fprintf (stderr, _("vfork() failed! (%s)\n"),strerror(errno)); return -1; case 0: /* child */ execv(*argv,argv); - fprintf (stderr, _("Spawn of child process failed! (%m)\n")); + fprintf (stderr, _("Spawn of child process failed! (%s)\n"),strerror(errno)); _exit(9); break; default: /* parent */ -- 1.8.3.1