* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an comBase beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: ngircd.c,v 1.9 2001/12/21 22:24:50 alex Exp $
+ * $Id: ngircd.c,v 1.13 2001/12/30 11:42:00 alex Exp $
*
* ngircd.c: Hier beginnt alles ;-)
*
* $Log: ngircd.c,v $
+ * Revision 1.13 2001/12/30 11:42:00 alex
+ * - der Server meldet nun eine ordentliche "Start-Zeit".
+ *
+ * Revision 1.12 2001/12/29 03:07:36 alex
+ * - einige Loglevel geaendert.
+ *
+ * Revision 1.11 2001/12/26 14:45:37 alex
+ * - "Code Cleanups".
+ *
+ * Revision 1.10 2001/12/24 01:34:38 alex
+ * - Signal-Handler aufgeraeumt; u.a. SIGPIPE wird nun korrekt ignoriert.
+ *
* Revision 1.9 2001/12/21 22:24:50 alex
* - neues Modul "parse" wird initialisiert und abgemeldet.
*
#include <assert.h>
#include <stdio.h>
#include <signal.h>
+#include <time.h>
#include "channel.h"
#include "client.h"
portab_check_types( );
/* Globale Variablen initialisieren */
+ NGIRCd_Start = time( NULL );
+ strftime( NGIRCd_StartStr, 64, "%a %b %d %Y at %H:%M:%S (%Z)", localtime( &NGIRCd_Start ));
NGIRCd_Quit = FALSE;
/* Module initialisieren */
Client_Init( );
Conn_Init( );
+ /* Signal-Handler initialisieren */
Initialize_Signal_Handler( );
- if( ! Conn_New_Listener( 6668 )) exit( 1 );
- if( ! Conn_New_Listener( 6669 )) Log( LOG_WARNING, "Can't create second listening socket!" );
+ if( ! Conn_NewListener( 6668 )) exit( 1 );
+ if( ! Conn_NewListener( 6669 )) Log( LOG_WARNING, "Can't create second listening socket!" );
/* Hauptschleife */
while( ! NGIRCd_Quit )
LOCAL VOID Initialize_Signal_Handler( VOID )
{
- /* Signal-Handler initialisieren: Strukturen anlegen und einhaengen :-) */
+ /* Signal-Handler initialisieren: einige Signale
+ * werden ignoriert, andere speziell behandelt. */
struct sigaction saction;
/* Signal-Struktur initialisieren */
memset( &saction, 0, sizeof( saction ));
- saction.sa_handler = Signal_Handler;
/* Signal-Handler einhaengen */
- sigaction( SIGALRM, &saction, NULL );
- sigaction( SIGHUP, &saction, NULL);
+ saction.sa_handler = Signal_Handler;
sigaction( SIGINT, &saction, NULL );
sigaction( SIGQUIT, &saction, NULL );
sigaction( SIGTERM, &saction, NULL);
- sigaction( SIGUSR1, &saction, NULL);
- sigaction( SIGUSR2, &saction, NULL);
+
+ /* einige Signale ignorieren */
+ saction.sa_handler = SIG_IGN;
+ sigaction( SIGPIPE, &saction, NULL );
} /* Initialize_Signal_Handler */
case SIGINT:
case SIGQUIT:
/* wir soll(t)en uns wohl beenden ... */
- Log( LOG_NOTICE, "Got signal %d, terminating now ...", Signal );
+ Log( LOG_WARNING, "Got signal %d, terminating now ...", Signal );
NGIRCd_Quit = TRUE;
break;
default: