diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-23 16:41:22 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-23 16:41:22 +0000 |
commit | f9ef034ef59702e3d627d0077e93980e565f0ea7 (patch) | |
tree | efb2830d2b08b0cd93e26df7ad5df8e68c36f7ca | |
parent | de3978c580edabe667d0845ed6027c9ff25e461b (diff) |
Fix exit in wrong place, and add new exitcodes.h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6077 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | include/exitcodes.h | 48 | ||||
-rw-r--r-- | include/inspircd.h | 4 | ||||
-rw-r--r-- | src/inspircd.cpp | 2 |
3 files changed, 51 insertions, 3 deletions
diff --git a/include/exitcodes.h b/include/exitcodes.h new file mode 100644 index 000000000..b42222697 --- /dev/null +++ b/include/exitcodes.h @@ -0,0 +1,48 @@ +#ifndef __EXITCODE_H__ +#define __EXITCODE_H__ + +/** Valid exit codes to be used with InspIRCd::Exit() + * */ +enum ExitStatus +{ + EXIT_STATUS_NOERROR = 0, + EXIT_STATUS_DIE = 1, + EXIT_STATUS_FAILED_EXEC = 2, + EXIT_STATUS_INTERNAL = 3, + EXIT_STATUS_CONFIG = 4, + EXIT_STATUS_LOG = 5, + EXIT_STATUS_FORK = 6, + EXIT_STATUS_ARGV = 7, + EXIT_STATUS_BIND = 8, + EXIT_STATUS_PID = 9, + EXIT_STATUS_SOCKETENGINE = 10, + EXIT_STATUS_ROOT = 11, + EXIT_STATUS_DIETAG = 12, + EXIT_STATUS_MODULE = 13, + EXIT_STATUS_SIGTERM = 15 /* Note: dont move this value. It corresponds with the value of #define SIGTERM. */ +}; + +/** Array that maps exit codes (ExitStatus types) to + * * human-readable strings to be shown on shutdown. + * */ +const char* ExitCodes[] = +{ + "No error", /* 0 */ + "DIE command", /* 1 */ + "execv() failed", /* 2 */ + "Internal error", /* 3 */ + "Config file error", /* 4 */ + "Logfile error", /* 5 */ + "Fork failed", /* 6 */ + "Bad commandline parameters", /* 7 */ + "No ports could be bound", /* 8 */ + "Can't write PID file", /* 9 */ + "SocketEngine could not initialize", /* 10 */ + "Refusing to start up as root", /* 11 */ + "Found a <die> tag!", /* 12 */ + "Couldn't load module on startup", /* 13 */ + "", /* 14 */ + "Received SIGTERM", /* 15 */ +}; + +#endif diff --git a/include/inspircd.h b/include/inspircd.h index a15c1fd68..4aa61e943 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -26,8 +26,7 @@ #include "command_parse.h" #include "snomasks.h" -/** Returned by some functions to indicate failure, - * and the exit code of the program if it terminates. +/** Returned by some functions to indicate failure. */ #define ERROR -1 @@ -655,6 +654,7 @@ class InspIRCd : public classbase /** Causes the server to exit immediately * @param The exit code to give to the operating system + * (See the ExitStatus enum for valid values) */ static void Exit(int status); diff --git a/src/inspircd.cpp b/src/inspircd.cpp index ab438df16..ceeaf6650 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -167,7 +167,7 @@ bool InspIRCd::DaemonSeed() */ while (kill(childpid, 0) != -1) sleep(1); - Exit(EXIT_STATUS_FORK); + exit(0); } setsid (); umask (007); |