SHA256
1
0
forked from pool/fwnn
fwnn/FreeWnn-sighandler.patch
Fuminobu Takeyama 9a14d50062 Accepting request 195772 from home:Mitsutoshi:branches:M17N
- Modify FreeWnn-prototypes_3.patch .
  I found a bug in make_hinsi_list() at Wnn/jserver/hinsi_list.c,
  then fixed it . 

- Add FreeWnn-prototypes_3.patch .
  Prototype declarations for reducing compilation warnings .

- Add FreeWnn-prototypes_msg.patch .
  Bugfix: In openSUSE 13.1 Milestone 3,
  uum could not get error messages .
  This issue's cause is that we forgot prototype declaration
  of msg_get() in Wnn/include/msg.h .
  Then I added "FreeWnn-prototypes_msg.patch" as %Patch15 .
  http://lists.opensuse.org/opensuse-ja/2013-08/msg00014.html
  http://sourceforge.jp/projects/freewnn/lists/archive/users/2013-August/000140.html
- I added %configure --with-libwrap option .
  The [jctk]server s were linked -lwrap .
  Then we can use /etc/hosts.allow /etc/hosts.deny .
- Degrade fix: In "FreeWnn-prototypes.patch",
  I invalidated the patch of "FreeWnn-sighandler.patch" .
  Then I deleted a wrong patch to "Wnn/jserver/de.c"
  from "FreeWnn-prototypes.patch" .
  http://sourceforge.jp/projects/freewnn/lists/archive/users/2013-August/000141.html
- Change: In "FreeWnn-sighandler.patch",
  I changed from _exit(-1) to _exit(255) .
  This change effects [jctk]server's exit status .

- SLE_11 and openSUSE 12.2 does not provide libwrap0,
  then I could not build FreeWnn on them .
  So, I deleted %configure --with-libwrap option

OBS-URL: https://build.opensuse.org/request/show/195772
OBS-URL: https://build.opensuse.org/package/show/M17N/fwnn?expand=0&rev=11
2013-08-21 14:26:34 +00:00

40 lines
809 B
Diff

--- 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
+ _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 ();
}
}