X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fngircd.c;h=7166640ba054288c08030f331ddf9c9724e0a073;hb=3aa1d880fe824fd8a3e6ce1db3a66bd4ae56b6bc;hp=347c41fa2325d24bfb8c753fbf14535c3421a2f1;hpb=9811223fb882413645db38948ac05fa21ddd3514;p=ngircd-alex.git diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 347c41fa..7166640b 100644 --- a/src/ngircd/ngircd.c +++ b/src/ngircd/ngircd.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors. + * Copyright (c)2001-2020 Alexander Barton (alex@barton.de) and Contributors. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -125,7 +125,7 @@ main(int argc, const char *argv[]) if (strcmp(argv[i], "--help") == 0) { Show_Version(); puts(""); Show_Help( ); puts( "" ); - exit(1); + exit(0); } if (strcmp(argv[i], "--nodaemon") == 0) { NGIRCd_NoDaemon = true; @@ -143,7 +143,7 @@ main(int argc, const char *argv[]) #endif if (strcmp(argv[i], "--version") == 0) { Show_Version(); - exit(1); + exit(0); } } else if(argv[i][0] == '-' && argv[i][1] != '-') { @@ -200,21 +200,23 @@ main(int argc, const char *argv[]) } if (!ok) { - printf("%s: invalid option \"-%c\"!\n", - PACKAGE_NAME, argv[i][n]); - printf("Try \"%s --help\" for more information.\n", - PACKAGE_NAME); - exit(1); + fprintf(stderr, + "%s: invalid option \"-%c\"!\n", + PACKAGE_NAME, argv[i][n]); + fprintf(stderr, + "Try \"%s --help\" for more information.\n", + PACKAGE_NAME); + exit(2); } } } if (!ok) { - printf("%s: invalid option \"%s\"!\n", - PACKAGE_NAME, argv[i]); - printf("Try \"%s --help\" for more information.\n", - PACKAGE_NAME); - exit(1); + fprintf(stderr, "%s: invalid option \"%s\"!\n", + PACKAGE_NAME, argv[i]); + fprintf(stderr, "Try \"%s --help\" for more information.\n", + PACKAGE_NAME); + exit(2); } } @@ -246,26 +248,18 @@ main(int argc, const char *argv[]) NGIRCd_SignalRestart = false; NGIRCd_SignalQuit = false; - /* Initialize modules, part I */ Log_Init(!NGIRCd_NoDaemon); Random_Init(); Conf_Init(); Log_ReInit(); - /* Initialize the "main program": chroot environment, user and - * group ID, ... */ + /* Initialize the "main program": + * chroot environment, user and group ID, ... */ if (!NGIRCd_Init(NGIRCd_NoDaemon)) { Log(LOG_ALERT, "Fatal: Initialization failed, exiting!"); exit(1); } - /* Initialize modules, part II: these functions are eventually - * called with already dropped privileges ... */ - Channel_Init(); - Client_Init(); - Conn_Init(); - Class_Init(); - if (!io_library_init(CONNECTION_POOL)) { Log(LOG_ALERT, "Fatal: Could not initialize IO routines: %s", @@ -280,6 +274,11 @@ main(int argc, const char *argv[]) exit(1); } + Channel_Init(); + Conn_Init(); + Class_Init(); + Client_Init(); + /* Create protocol and server identification. The syntax * used by ngIRCd in PASS commands and the known "extended * flags" are described in doc/Protocol.txt. */ @@ -451,7 +450,7 @@ static void Show_Version( void ) { puts( NGIRCd_Version ); - puts( "Copyright (c)2001-2014 Alexander Barton () and Contributors." ); + puts( "Copyright (c)2001-2020 Alexander Barton () and Contributors." ); puts( "Homepage: \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." );