9a14d50062
- 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
40 lines
809 B
Diff
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 ();
|
|
}
|
|
}
|