/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001 by Alexander Barton (alex@barton.de)
+ * Copyright (c)2001,2002 by Alexander Barton (alex@barton.de)
*
* Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen
* der GNU General Public License (GPL), wie von der Free Software Foundation
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: ngircd.c,v 1.15 2001/12/31 02:18:51 alex Exp $
+ * $Id: ngircd.c,v 1.16 2002/01/02 02:44:37 alex Exp $
*
* ngircd.c: Hier beginnt alles ;-)
*
* $Log: ngircd.c,v $
+ * Revision 1.16 2002/01/02 02:44:37 alex
+ * - neue Defines fuer max. Anzahl Server und Operatoren.
+ *
* Revision 1.15 2001/12/31 02:18:51 alex
* - viele neue Befehle (WHOIS, ISON, OPER, DIE, RESTART),
* - neuen Header "defines.h" mit (fast) allen Konstanten.
#include <assert.h>
#include <stdio.h>
#include <signal.h>
+#include <sys/types.h>
+#include <sys/wait.h>
#include <time.h>
#include "channel.h"
sigaction( SIGINT, &saction, NULL );
sigaction( SIGQUIT, &saction, NULL );
sigaction( SIGTERM, &saction, NULL);
+ sigaction( SIGCHLD, &saction, NULL);
/* einige Signale ignorieren */
saction.sa_handler = SIG_IGN;
Log( LOG_WARNING, "Got signal %d, terminating now ...", Signal );
NGIRCd_Quit = TRUE;
break;
+ case SIGCHLD:
+ /* Child-Prozess wurde beendet. Zombies vermeiden: */
+ while( waitpid( -1, NULL, WNOHANG ) > 0);
+ break;
default:
/* unbekanntes bzw. unbehandeltes Signal */
Log( LOG_NOTICE, "Got signal %d! Ignored.", Signal );