commit - 10aa35cc91239863755a92626ec51beeaf092ddc
commit + fe2bc90e45fec65ece7e31e442177284f29f6d3b
blob - cc647a0c51c0dfeeb2650a88713244deef2bec8d
blob + 540ef2fa0ef31b294b31d82ee294d87973030e5b
--- src/ngircd/log.c
+++ src/ngircd/log.c
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: log.c,v 1.19 2002/03/03 17:17:01 alex Exp $
+ * $Id: log.c,v 1.20 2002/03/06 15:36:04 alex Exp $
*
* log.c: Logging-Funktionen
*
* $Log: log.c,v $
+ * Revision 1.20 2002/03/06 15:36:04 alex
+ * - stderr wird nun in eine Datei umgelenkt (ngircd.err). Wenn der Server
+ * nicht im Debug-Modus laeuft, so wird diese bei Programmende geloescht.
+ *
* Revision 1.19 2002/03/03 17:17:01 alex
* - strncpy() und vsnprintf() kopieren nun etwas "optimierter" (1 Byte weniger) :-)
*
#include <imp.h>
#include <assert.h>
+#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
#ifdef USE_SYSLOG
#include <syslog.h>
/* Hello World! */
Log( LOG_NOTICE, "%s started.", NGIRCd_Version( ));
-
+
/* Informationen uebern den "Operation Mode" */
strcpy( txt, "" );
#ifdef DEBUG
}
#endif
if( txt[0] ) Log( LOG_INFO, "Activating: %s.", txt );
+
+ /* stderr in Datei umlenken */
+ fflush( stderr );
+ if( ! freopen( ERROR_FILE, "a+", stderr )) Log( LOG_ERR, "Can't reopen stderr (\""ERROR_FILE"\"): %s", strerror( errno ));
+
+ fprintf( stderr, "\n--- %s ---\n\n", NGIRCd_StartStr );
+ fprintf( stderr, "%s started.\npid=%d, ppid=%d, uid=%d, gid=%d [euid=%d, egid=%d].\nActivating: %s\n\n", NGIRCd_Version( ), getpid( ), getppid( ), getuid( ), getgid( ), geteuid( ), getegid( ), txt[0] ? txt : "-" );
+ fflush( stderr );
} /* Log_Init */
{
/* Good Bye! */
Log( LOG_NOTICE, PACKAGE" done.");
-
+ fprintf( stderr, PACKAGE" done (pid=%d).\n", getpid( ));
+ fflush( stderr );
+
#ifdef USE_SYSLOG
/* syslog abmelden */
closelog( );
vsnprintf( msg, MAX_LOG_MSG_LEN, Format, ap );
va_end( ap );
+ /* In Error-File schreiben */
+ if( Level <= LOG_ERR ) fprintf( stderr, "[%d] %s\n", Level, msg );
+
/* ... und ausgeben */
if( NGIRCd_NoDaemon ) printf( "[%d] %s\n", Level, msg );
+
#ifdef USE_SYSLOG
+ /* Syslog */
syslog( Level, msg );
#endif
} /* Log */
blob - 25e9d41435a12467673f0e96b642f8f44c5096c7
blob + 25d7a3411cd65211986b140b4a1b1503144c175e
--- src/ngircd/ngircd.c
+++ src/ngircd/ngircd.c
* 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.28 2002/02/27 23:24:29 alex Exp $
+ * $Id: ngircd.c,v 1.29 2002/03/06 15:36:04 alex Exp $
*
* ngircd.c: Hier beginnt alles ;-)
*
* $Log: ngircd.c,v $
+ * Revision 1.29 2002/03/06 15:36:04 alex
+ * - stderr wird nun in eine Datei umgelenkt (ngircd.err). Wenn der Server
+ * nicht im Debug-Modus laeuft, so wird diese bei Programmende geloescht.
+ *
* Revision 1.28 2002/02/27 23:24:29 alex
* - ueberfluessige Init- und Exit-Funktionen entfernt.
*
printf( PACKAGE": Can't fork: %s!\nFatal error, exiting now ...", strerror( errno ));
exit( 1 );
}
+
+ /* Child-Prozess initialisieren */
setsid( );
chdir( "/" );
}
Conf_Exit( );
Log_Exit( );
}
+
+#ifndef DEBUG
+ /* aufraeumen */
+ if( unlink( ERROR_FILE ) != 0 ) Log( LOG_ERR, "Can't delete \""ERROR_FILE"\": %s", strerror( errno ));
+#endif
+
return 0;
} /* main */