summaryrefslogtreecommitdiff
path: root/src/common/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/core.c')
-rw-r--r--src/common/core.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/common/core.c b/src/common/core.c
index 2546f4e..94a754b 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -7,11 +7,13 @@
#include <unistd.h>
#endif
#include <signal.h>
+#include <wait.h>
#include "core.h"
#include "socket.h"
#include "timer.h"
#include "version.h"
+#include "mt_rand.h"
#ifdef MEMWATCH
#include "memwatch.h"
@@ -48,6 +50,9 @@ static void sig_proc(int sn)
}
exit(0);
break;
+ case SIGCHLD:
+ wait(&i);
+ break;
}
}
@@ -129,13 +134,16 @@ int main(int argc,char **argv)
{
int next;
+ mt_seed(time(NULL) ^ getpid() ^ getppid());
+
Net_Init();
do_socket();
compat_signal(SIGPIPE,SIG_IGN);
compat_signal(SIGTERM,sig_proc);
compat_signal(SIGINT,sig_proc);
-
+ compat_signal(SIGCHLD,sig_proc);
+
// Signal to create coredumps by system when necessary (crash)
compat_signal(SIGSEGV, SIG_DFL);
#ifndef LCCWIN32