SHA256
1
0
forked from pool/fwnn
fwnn/FreeWnn-sighandler.patch

40 lines
809 B
Diff
Raw Normal View History

--- BUILD/FreeWnn-1.1.1-a021/Wnn/jserver/de.c
+++ BUILD/FreeWnn-1.1.1-a021/Wnn/jserver/de.c
@@ -212,6 +212,19 @@
# include <tcpd.h>
#endif /* HAVE_LIBWRAP */
+#ifndef NOTFORK
+static void father_sighandler (const int sig)
+{
+ if (signal(sig, SIG_DFL) == SIG_ERR)
+ _exit (2);
+
+ if (sig == SIGTERM)
+ _exit(0);
+ else
2013-08-21 16:26:34 +02:00
+ _exit(255);
+}
+#endif
+
/* No arguments are used. Only options. */
int
main (int argc, char *argv[])
@@ -248,14 +261,14 @@
{
if (fork ())
{
- signal (SIGCHLD, _exit);
+ signal (SIGCHLD, father_sighandler);
signal (SIGHUP, SIG_IGN);
signal (SIGINT, SIG_IGN);
signal (SIGQUIT, SIG_IGN);
#ifdef SIGTSTP
signal (SIGTSTP, SIG_IGN);
#endif
- signal (SIGTERM, _exit);
+ signal (SIGTERM, father_sighandler);
pause ();
}
}