mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-13 18:30:27 +00:00
- Kommandozeilen-Parser implementiert: Debug- und No-Daemon-Modus, Hilfe.
This commit is contained in:
parent
baf845ddeb
commit
52424b49cb
@ -9,11 +9,14 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: ngircd.c,v 1.17 2002/01/02 02:51:16 alex Exp $
|
* $Id: ngircd.c,v 1.18 2002/01/11 14:45:18 alex Exp $
|
||||||
*
|
*
|
||||||
* ngircd.c: Hier beginnt alles ;-)
|
* ngircd.c: Hier beginnt alles ;-)
|
||||||
*
|
*
|
||||||
* $Log: ngircd.c,v $
|
* $Log: ngircd.c,v $
|
||||||
|
* Revision 1.18 2002/01/11 14:45:18 alex
|
||||||
|
* - Kommandozeilen-Parser implementiert: Debug- und No-Daemon-Modus, Hilfe.
|
||||||
|
*
|
||||||
* Revision 1.17 2002/01/02 02:51:16 alex
|
* Revision 1.17 2002/01/02 02:51:16 alex
|
||||||
* - Signal-Handler fuer SIGCHLD: so sollten Zombies nicht mehr vorkommen.
|
* - Signal-Handler fuer SIGCHLD: so sollten Zombies nicht mehr vorkommen.
|
||||||
*
|
*
|
||||||
@ -82,6 +85,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <string.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
@ -103,12 +107,94 @@ LOCAL VOID Signal_Handler( INT Signal );
|
|||||||
|
|
||||||
LOCAL VOID Initialize_Listen_Ports( VOID );
|
LOCAL VOID Initialize_Listen_Ports( VOID );
|
||||||
|
|
||||||
|
LOCAL VOID Show_Version( VOID );
|
||||||
|
LOCAL VOID Show_Help( VOID );
|
||||||
|
|
||||||
|
|
||||||
GLOBAL INT main( INT argc, CONST CHAR *argv[] )
|
GLOBAL INT main( INT argc, CONST CHAR *argv[] )
|
||||||
{
|
{
|
||||||
|
BOOLEAN ok;
|
||||||
|
INT i, n;
|
||||||
|
|
||||||
/* Datentypen der portab-Library ueberpruefen */
|
/* Datentypen der portab-Library ueberpruefen */
|
||||||
portab_check_types( );
|
portab_check_types( );
|
||||||
|
|
||||||
|
NGIRCd_Restart = FALSE;
|
||||||
|
NGIRCd_Quit = FALSE;
|
||||||
|
NGIRCd_NoDaemon = FALSE;
|
||||||
|
#ifdef DEBUG
|
||||||
|
NGIRCd_Debug = FALSE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Kommandozeile parsen */
|
||||||
|
for( i = 1; i < argc; i++ )
|
||||||
|
{
|
||||||
|
ok = FALSE;
|
||||||
|
if(( argv[i][0] == '-' ) && ( argv[i][1] == '-' ))
|
||||||
|
{
|
||||||
|
/* Lange Option */
|
||||||
|
|
||||||
|
if( strcmp( argv[i], "--help" ) == 0 )
|
||||||
|
{
|
||||||
|
Show_Version( ); puts( "" );
|
||||||
|
Show_Help( ); puts( "" );
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
if( strcmp( argv[i], "--version" ) == 0 )
|
||||||
|
{
|
||||||
|
Show_Version( );
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
#ifdef DEBUG
|
||||||
|
if( strcmp( argv[i], "--debug" ) == 0 )
|
||||||
|
{
|
||||||
|
NGIRCd_Debug = TRUE;
|
||||||
|
ok = TRUE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if( strcmp( argv[i], "--nodaemon" ) == 0 )
|
||||||
|
{
|
||||||
|
NGIRCd_NoDaemon = TRUE;
|
||||||
|
ok = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(( argv[i][0] == '-' ) && ( argv[i][1] != '-' ))
|
||||||
|
{
|
||||||
|
/* Kurze Option */
|
||||||
|
|
||||||
|
for( n = 1; n < strlen( argv[i] ); n++ )
|
||||||
|
{
|
||||||
|
ok = FALSE;
|
||||||
|
#ifdef DEBUG
|
||||||
|
if( argv[i][n] == 'd' )
|
||||||
|
{
|
||||||
|
NGIRCd_Debug = TRUE;
|
||||||
|
ok = TRUE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if( argv[i][n] == 'n' )
|
||||||
|
{
|
||||||
|
NGIRCd_NoDaemon = TRUE;
|
||||||
|
ok = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! ok )
|
||||||
|
{
|
||||||
|
printf( PACKAGE": invalid option \"-%c\"!\n", argv[i][n] );
|
||||||
|
puts( "Try \""PACKAGE" --help\" for more information." );
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if( ! ok )
|
||||||
|
{
|
||||||
|
printf( PACKAGE": invalid option \"%s\"!\n", argv[i] );
|
||||||
|
puts( "Try \""PACKAGE" --help\" for more information." );
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while( ! NGIRCd_Quit )
|
while( ! NGIRCd_Quit )
|
||||||
{
|
{
|
||||||
/* Globale Variablen initialisieren */
|
/* Globale Variablen initialisieren */
|
||||||
@ -152,6 +238,39 @@ GLOBAL INT main( INT argc, CONST CHAR *argv[] )
|
|||||||
} /* main */
|
} /* main */
|
||||||
|
|
||||||
|
|
||||||
|
GLOBAL CHAR *NGIRCd_Version( VOID )
|
||||||
|
{
|
||||||
|
STATIC CHAR version[126];
|
||||||
|
CHAR txt[64];
|
||||||
|
|
||||||
|
strcpy( txt, "" );
|
||||||
|
|
||||||
|
#ifdef USE_SYSLOG
|
||||||
|
if( txt[0] ) strcat( txt, "+" );
|
||||||
|
else strcat( txt, "-" );
|
||||||
|
strcat( txt, "SYSLOG" );
|
||||||
|
#endif
|
||||||
|
#ifdef STRICT_RFC
|
||||||
|
if( txt[0] ) strcat( txt, "+" );
|
||||||
|
else strcat( txt, "-" );
|
||||||
|
strcat( txt, "RFC" );
|
||||||
|
#endif
|
||||||
|
#ifdef DEBUG
|
||||||
|
if( txt[0] ) strcat( txt, "+" );
|
||||||
|
else strcat( txt, "-" );
|
||||||
|
strcat( txt, "DEBUG" );
|
||||||
|
#endif
|
||||||
|
#ifdef SNIFFER
|
||||||
|
if( txt[0] ) strcat( txt, "+" );
|
||||||
|
else strcat( txt, "-" );
|
||||||
|
strcat( txt, "SNIFFER" );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
sprintf( version, PACKAGE" version "VERSION"%s-"P_OSNAME"/"P_ARCHNAME, txt );
|
||||||
|
return version;
|
||||||
|
} /* NGIRCd_Version */
|
||||||
|
|
||||||
|
|
||||||
LOCAL VOID Initialize_Signal_Handler( VOID )
|
LOCAL VOID Initialize_Signal_Handler( VOID )
|
||||||
{
|
{
|
||||||
/* Signal-Handler initialisieren: einige Signale
|
/* Signal-Handler initialisieren: einige Signale
|
||||||
@ -223,4 +342,25 @@ LOCAL VOID Initialize_Listen_Ports( VOID )
|
|||||||
}
|
}
|
||||||
} /* Initialize_Listen_Ports */
|
} /* Initialize_Listen_Ports */
|
||||||
|
|
||||||
|
|
||||||
|
LOCAL VOID Show_Version( VOID )
|
||||||
|
{
|
||||||
|
puts( NGIRCd_Version( ));
|
||||||
|
puts( "Copyright (c)2001,2002 by Alexander Barton (alex@barton.de).\n" );
|
||||||
|
puts( "This is free software; see the source for copying conditions. There is NO" );
|
||||||
|
puts( "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." );
|
||||||
|
} /* Show_Version */
|
||||||
|
|
||||||
|
|
||||||
|
LOCAL VOID Show_Help( VOID )
|
||||||
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
|
puts( " -d, --debug log extra debug messages" );
|
||||||
|
#endif
|
||||||
|
puts( " -n, --nodaemon don't fork and don't detatch from controlling terminal" );
|
||||||
|
puts( " --version display this help and exit" );
|
||||||
|
puts( " --help output version information and exit" );
|
||||||
|
} /* Show_Help */
|
||||||
|
|
||||||
|
|
||||||
/* -eof- */
|
/* -eof- */
|
||||||
|
@ -9,11 +9,14 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: ngircd.h,v 1.6 2002/01/02 02:44:37 alex Exp $
|
* $Id: ngircd.h,v 1.7 2002/01/11 14:45:18 alex Exp $
|
||||||
*
|
*
|
||||||
* ngircd.h: Prototypen aus dem "Haupt-Modul"
|
* ngircd.h: Prototypen aus dem "Haupt-Modul"
|
||||||
*
|
*
|
||||||
* $Log: ngircd.h,v $
|
* $Log: ngircd.h,v $
|
||||||
|
* Revision 1.7 2002/01/11 14:45:18 alex
|
||||||
|
* - Kommandozeilen-Parser implementiert: Debug- und No-Daemon-Modus, Hilfe.
|
||||||
|
*
|
||||||
* Revision 1.6 2002/01/02 02:44:37 alex
|
* Revision 1.6 2002/01/02 02:44:37 alex
|
||||||
* - neue Defines fuer max. Anzahl Server und Operatoren.
|
* - neue Defines fuer max. Anzahl Server und Operatoren.
|
||||||
*
|
*
|
||||||
@ -45,10 +48,19 @@
|
|||||||
GLOBAL time_t NGIRCd_Start; /* Startzeitpunkt des Daemon */
|
GLOBAL time_t NGIRCd_Start; /* Startzeitpunkt des Daemon */
|
||||||
GLOBAL CHAR NGIRCd_StartStr[64];
|
GLOBAL CHAR NGIRCd_StartStr[64];
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
GLOBAL BOOLEAN NGIRCd_Debug; /* Debug-Modus aktivieren */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GLOBAL BOOLEAN NGIRCd_NoDaemon; /* nicht im Hintergrund laufen */
|
||||||
|
|
||||||
GLOBAL BOOLEAN NGIRCd_Quit; /* TRUE: ngIRCd beenden */
|
GLOBAL BOOLEAN NGIRCd_Quit; /* TRUE: ngIRCd beenden */
|
||||||
GLOBAL BOOLEAN NGIRCd_Restart; /* TRUE: neu starten */
|
GLOBAL BOOLEAN NGIRCd_Restart; /* TRUE: neu starten */
|
||||||
|
|
||||||
|
|
||||||
|
GLOBAL CHAR *NGIRCd_Version( VOID );
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user