summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
authorDaniel Hunsaker <danhunsaker@gmail.com>2013-02-23 03:17:56 +0100
committerDaniel Hunsaker <danhunsaker@gmail.com>2013-02-23 03:18:51 +0100
commit3b5b7f48848d098c6190781f8790a1b0dcb0217c (patch)
treeaf75fafeb3c822b720ee3da9b23b9d7a9e6ba020 /application
parent44a6d1da2be916fe0f23a3ea4d5fcb391d7f65dd (diff)
Updated exit codes as constant values
Re-allocated exit status codes according to three references, which follow: BSD sysexits.h:http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits GNU recomendations:http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html Bash scripting:http://tldp.org/LDP/abs/html/exitcodes.html The GNU recommendations stem from and expand upon the standard C/C++ library (stdlibc) definitions, while also suggesting some best-practice conventions which happen to prevent exit status code collisions with bash, and probably other shells. The re-allocated codes are now mapped to constant values, set in *application/config/constants.php*, and used throughout the CodeIgniter core. They would additionally be used in *index.php*, but the constants file hasn't been loaded at that point, so the integer values are used instead, and a comment follows each such use with amplifying information on why that particular value was selected. Finally, the errors documentation has been updated accordingly. Signed-off-by: Daniel Hunsaker <danhunsaker@gmail.com>
Diffstat (limited to 'application')
-rw-r--r--application/config/constants.php110
1 files changed, 110 insertions, 0 deletions
diff --git a/application/config/constants.php b/application/config/constants.php
index 58264ed5a..32a715952 100644
--- a/application/config/constants.php
+++ b/application/config/constants.php
@@ -73,6 +73,116 @@ define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
*/
define('SHOW_DEBUG_BACKTRACE', TRUE);
+/*
+|--------------------------------------------------------------------------
+| Exit Status Codes
+|--------------------------------------------------------------------------
+|
+| Used to indicate the conditions under which the script is exit()ing.
+| While there is no universal standard for error codes, there are some
+| broad conventions. Three such conventions are presented below, for
+| those who wish to make use of them. The CodeIgniter defaults were
+| chosen for the least overlap with these conventions, while still
+| leaving room for others to be defined in future versions and user
+| applications. The CodeIgniter values are defined last so you can
+| set them to values used by any of the other conventions, and do so
+| by name instead of value.
+|
+*/
+
+/*
+ * standard C/C++ library (stdlibc):
+ */
+/*
+define('LIBC_EXIT_SUCCESS', 0);
+define('LIBC_EXIT_FAILURE', 1); // generic errors
+*/
+
+/*
+ * BSD sysexits.h
+ */
+/*
+define('SYS_EX_OK', 0); // successful termination
+define('SYS_EX_USAGE', 64); // command line usage error
+define('SYS_EX_DATAERR', 65); // data format error
+define('SYS_EX_NOINPUT', 66); // cannot open input
+define('SYS_EX_NOUSER', 67); // specified user unknown
+define('SYS_EX_NOHOST', 68); // specified host name unknown
+define('SYS_EX_UNAVAILABLE', 69); // service unavailable
+define('SYS_EX_SOFTWARE', 70); // internal software error
+define('SYS_EX_OSERR', 71); // system error (e.g., can't fork)
+define('SYS_EX_OSFILE', 72); // critical OS file missing
+define('SYS_EX_CANTCREAT', 73); // can't create (user) output file
+define('SYS_EX_IOERR', 74); // input/output error
+define('SYS_EX_TEMPFAIL', 75); // temporary failure; user is invited to retry
+define('SYS_EX_PROTOCOL', 76); // remote error in protocol
+define('SYS_EX_NOPERM', 77); // permission denied
+define('SYS_EX_CONFIG', 78); // configuration error
+*/
+
+/*
+ * Bash scripting
+ */
+/*
+define('BASH_EXIT_SUCCESS', 0);
+define('BASH_EXIT_ERROR', 1);
+define('BASH_EXIT_BUILTIN_MISUSE', 2);
+define('BASH_EXIT_CANT_EXEC', 126);
+define('BASH_EXIT_CMD_NOT_FOUND', 127);
+define('BASH_EXIT_INVALID_EXIT', 128);
+define('BASH_EXIT_SIG_HUP', 129);
+define('BASH_EXIT_SIG_INT', 130);
+define('BASH_EXIT_SIG_QUIT', 131);
+define('BASH_EXIT_SIG_ILL', 132);
+define('BASH_EXIT_SIG_TRAP', 133);
+define('BASH_EXIT_SIG_ABRT', 134);
+define('BASH_EXIT_SIG_BUS', 135);
+define('BASH_EXIT_SIG_FPE', 136);
+define('BASH_EXIT_SIG_KILL', 137);
+define('BASH_EXIT_SIG_USR1', 138);
+define('BASH_EXIT_SIG_SEGV', 139);
+define('BASH_EXIT_SIG_USR2', 140);
+define('BASH_EXIT_SIG_PIPE', 141);
+define('BASH_EXIT_SIG_ALRM', 142);
+define('BASH_EXIT_SIG_TERM', 143);
+define('BASH_EXIT_SIG_STKFLT', 144);
+define('BASH_EXIT_SIG_CHLD', 145);
+define('BASH_EXIT_SIG_CONT', 146);
+define('BASH_EXIT_SIG_STOP', 147);
+define('BASH_EXIT_SIG_TSTP', 148);
+define('BASH_EXIT_SIG_TTIN', 149);
+define('BASH_EXIT_SIG_TTOU', 150);
+define('BASH_EXIT_SIG_URG', 151);
+define('BASH_EXIT_SIG_XCPU', 152);
+define('BASH_EXIT_SIG_XFSZ', 153);
+define('BASH_EXIT_SIG_VTALRM', 154);
+define('BASH_EXIT_SIG_PROF', 155);
+define('BASH_EXIT_SIG_WINCH', 156);
+define('BASH_EXIT_SIG_IO', 157);
+define('BASH_EXIT_SIG_PWR', 158);
+define('BASH_EXIT_SIG_SYS', 159);
+*/
+/*
+ * BASH_EXIT_OUTOFRANGE would be 255, and mean an exit status code beyond
+ * the range of 0-255 was given. However, this code CANNOT BE USED IN PHP,
+ * so it isn't actually defined, even in a comment.
+ */
+
+/*
+ * CodeIgniter defaults
+ */
+define('EXIT_SUCCESS', 0); // no errors
+define('EXIT_FAILURE', 1); // generic error
+define('EXIT_CONFIG', 3); // configuration error
+define('EXIT_404', 4); // file not found; convenience value
+define('EXIT_UNK_FILE', 4); // file not found
+define('EXIT_UNK_CLASS', 5); // unknown class
+define('EXIT_UNK_MEMBER', 6); // unknown class member
+define('EXIT_USER_INPUT', 7); // invalid user input
+define('EXIT_DATABASE', 8); // database error
+define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
+define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
+
/* End of file constants.php */
/* Location: ./application/config/constants.php */ \ No newline at end of file