Add new status items num_chunks and chunk_time.
[paraslash.git] / error.h
diff --git a/error.h b/error.h
index cc953d28aa4a38731257880225eea98a66611997..534e7f97da3afac6ad24c69d5f6f9aec49fc45a6 100644 (file)
--- a/error.h
+++ b/error.h
@@ -4,11 +4,11 @@
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
 
-/** \file error.h list of error messages for all subsystems */
+/** \file error.h List of error messages for all subsystems. */
 
 /** \cond */
 
-/* list of all subsystems that use paraslash's error facility */
+/* List of all subsystems that use paraslash's error facility. */
 DEFINE_ERRLIST_OBJECT_ENUM;
 
 /* these do not need error handling (yet) */
@@ -25,6 +25,9 @@ DEFINE_ERRLIST_OBJECT_ENUM;
 #define SCORE_ERRORS
 #define SHA1_ERRORS
 #define RECV_ERRORS
+#define AFH_COMMON_ERRORS
+#define RBTREE_ERRORS
+
 
 extern const char **para_errlist[];
 
@@ -64,42 +67,40 @@ extern const char **para_errlist[];
        PARA_ERROR(STAT, "can not stat file"), \
        PARA_ERROR(FSTAT, "fstat error"), \
        PARA_ERROR(RENAME, "rename failed"), \
-       PARA_ERROR(EMPTY, "file empty"), \
-       PARA_ERROR(MMAP, "mmap error"), \
-       PARA_ERROR(MUNMAP, "munmap failed"), \
        PARA_ERROR(WRITE, "write error"), \
        PARA_ERROR(LSEEK, "lseek error"), \
        PARA_ERROR(BUSY, "table is busy"), \
        PARA_ERROR(SHORT_TABLE, "table too short"), \
        PARA_ERROR(NO_MAGIC, "missing table header magic"), \
-       PARA_ERROR(VERSION_MISMATCH, "table version not suppoerted"), \
+       PARA_ERROR(VERSION_MISMATCH, "table version not supported"), \
        PARA_ERROR(BAD_COLUMN_NUM, "invalid column number"), \
        PARA_ERROR(BAD_TABLE_FLAGS, "invalid flags in table description"), \
        PARA_ERROR(BAD_ROW, "invalid row"), \
 
 
-#define RBTREE_ERRORS \
-
 
 #define AFS_ERRORS \
        PARA_ERROR(BAD_TABLE_NAME, "invalid table"), \
        PARA_ERROR(INPUT_TOO_LARGE, "input too large for stdin command"), \
        PARA_ERROR(AFS_SYNTAX, "afs syntax error"), \
        PARA_ERROR(AFS_SIGNAL, "afs caught deadly signal"), \
+       PARA_ERROR(AFS_SOCKET, "afs socket not writable"), \
+       PARA_ERROR(AFS_PARENT_DIED, "fatal: server process terminated"), \
+       PARA_ERROR(AFS_SHORT_READ, "short read from afs socket"), \
 
 
 #define MOOD_ERRORS \
        PARA_ERROR(MOOD_SYNTAX, "mood syntax error"), \
        PARA_ERROR(NO_MOOD, "no mood available"), \
        PARA_ERROR(MOOD_LOADED, "mood loaded"), \
-       PARA_ERROR(NOT_ADMISSIBLE, "file is not admussible"), \
+       PARA_ERROR(NOT_ADMISSIBLE, "file is not admissible"), \
 
 
 #define ATTRIBUTE_ERRORS \
        PARA_ERROR(ATTR_SYNTAX, "attribute syntax error"), \
-       PARA_ERROR(ATTR_EXISTS, "attribute already exists"), \
-       PARA_ERROR(ATTR_TABLE_FULL, "attribute table full"), \
        PARA_ERROR(NO_ATTRIBUTES, "no attributes defined yet"), \
+       PARA_ERROR(ATT_TABLE_FULL, "no more space left in attribute table"), \
+
 
 #define BLOB_ERRORS \
        PARA_ERROR(BLOB_SYNTAX, "blob syntax error"), \
@@ -109,11 +110,12 @@ extern const char **para_errlist[];
 #define PLAYLIST_ERRORS \
        PARA_ERROR(NO_PLAYLIST, "no valid playlist found"), \
        PARA_ERROR(PLAYLIST_LOADED, ""), /* not really an error */ \
+       PARA_ERROR(PATH_FOUND, ""), /* not really an error */ \
        PARA_ERROR(PLAYLIST_EMPTY, "attempted to load empty playlist"), \
 
 
 #define AFT_ERRORS \
-       PARA_ERROR(BAD_AFSI, "invaid afs info"), \
+       PARA_ERROR(BAD_AFSI, "invaiid afs info"), \
        PARA_ERROR(LOCALTIME, "localtime() failed"), \
        PARA_ERROR(STRFTIME, "strftime() failed"), \
        PARA_ERROR(BAD_PATH, "invalid path"), \
@@ -145,7 +147,6 @@ extern const char **para_errlist[];
        PARA_ERROR(AUDIOC_OVERRUN, "audioc buffer overrun"), \
 
 
-
 #define CLIENT_COMMON_ERRORS \
        PARA_ERROR(CLIENT_SYNTAX, "syntax error"), \
        PARA_ERROR(INVALID_CHALLENGE, "did not receive valid challenge"), \
@@ -173,35 +174,29 @@ extern const char **para_errlist[];
 
 
 #define NET_ERRORS \
-       PARA_ERROR(SEND, "send error"), \
-       PARA_ERROR(RECV, "receive error"), \
-       PARA_ERROR(SOCKET, "socket error"), \
        PARA_ERROR(CONNECT, "connect error"), \
-       PARA_ERROR(ACCEPT, "accept error"), \
-       PARA_ERROR(SETSOCKOPT, "failed to set socket options"), \
-       PARA_ERROR(BIND, "bind error"), \
        PARA_ERROR(NAME_TOO_LONG, "name too long for struct sockaddr_un"), \
+       PARA_ERROR(ADDRESS_LOOKUP, "address lookup / socket creation failed"), \
        PARA_ERROR(CHMOD, "failed to set socket mode"), \
        PARA_ERROR(SENDMSG, "sendmsg() failed"), \
        PARA_ERROR(RECVMSG, "recvmsg() failed"), \
        PARA_ERROR(SCM_CREDENTIALS, "did not receive SCM credentials"), \
-       PARA_ERROR(LISTEN, "listen error"), \
        PARA_ERROR(RECV_PATTERN, "did not receive expected pattern"), \
-       PARA_ERROR(HOST_INFO, "gethostbyname() failed"), \
 
 
 #define ORTP_RECV_ERRORS \
        PARA_ERROR(MSG_TO_BUF, "failed to extract rtp packet"), \
-       PARA_ERROR(ORTP_SYNTAX, "ottp syntax error"), \
+       PARA_ERROR(ORTP_SYNTAX, "ortp syntax error"), \
        PARA_ERROR(TOO_MANY_BAD_CHUNKS, "too many consecutive bad chunks"), \
        PARA_ERROR(INVALID_HEADER, "invalid header packet"), \
-       PARA_ERROR(OVERRUN, "outout buffer overrun"), \
+       PARA_ERROR(OVERRUN, "output buffer overrun"), \
        PARA_ERROR(ORTP_RECV_EOF, "ortp_recv: end of file"), \
 
 
 #define HTTP_RECV_ERRORS \
        PARA_ERROR(HTTP_RECV_EOF, "http_recv: end of file"), \
-       PARA_ERROR(HTTP_RECV_OVERRUN, "http_recv: outout buffer overrun"), \
+       PARA_ERROR(HTTP_RECV_OVERRUN, "http_recv: output buffer overrun"), \
+
 
 #define RECV_COMMON_ERRORS \
        PARA_ERROR(RECV_SYNTAX, "recv syntax error"), \
@@ -262,9 +257,8 @@ extern const char **para_errlist[];
 
 
 #define SIGNAL_ERRORS \
-       PARA_ERROR(SIGNAL_SIG_ERR, "signal() retured SIG_ERR"), \
+       PARA_ERROR(SIGNAL_SIG_ERR, "signal() returned SIG_ERR"), \
        PARA_ERROR(SIGNAL_READ, "read error from signal pipe"), \
-       PARA_ERROR(WAITPID, "waitpid error"), \
 
 
 #define STRING_ERRORS \
@@ -316,10 +310,8 @@ extern const char **para_errlist[];
        PARA_ERROR(BAD_AUDIO_FILE_SUFFIX, "unknown suffix"), \
        PARA_ERROR(AUDIO_FORMAT, "audio format not recognized"), \
        PARA_ERROR(CHUNK, "unable to get chunk"), \
-
-
-#define AFS_COMMON_ERRORS \
-       PARA_ERROR(LSTAT, "lstat error"), \
+       PARA_ERROR(SHORT_AFS_READ, "short read from afs socket"), \
+       PARA_ERROR(NOFD, "did not receive open fd from afs"), \
 
 
 #define CRYPT_ERRORS \
@@ -336,33 +328,6 @@ extern const char **para_errlist[];
        PARA_ERROR(SEND_QUEUED_CHUNK, "failed to send queued chunk"), \
 
 
-#define RANDOM_SELECTOR_ERRORS \
-       PARA_ERROR(NOTHING_FOUND, "no audio files found"), \
-
-
-#define MYSQL_SELECTOR_ERRORS \
-       PARA_ERROR(MYSQL_SYNTAX, "mysql syntax error"), \
-       PARA_ERROR(NOTCONN, "not connected to mysql server"), \
-       PARA_ERROR(TOOBIG, "mysql: file too large"), \
-       PARA_ERROR(NAMETOOLONG, "mysql: name too long"), \
-       PARA_ERROR(QFAILED, "mysql query failed"), \
-       PARA_ERROR(NOROW, "row is NULL"), \
-       PARA_ERROR(NOATTS, "can not get attributes from mysql table"), \
-       PARA_ERROR(NORESULT, "error while fetching mysql result"), \
-       PARA_ERROR(EMPTY_RESULT, "result is empty"), \
-       PARA_ERROR(ESCAPE, "can not escape string"), \
-       PARA_ERROR(GET_AUDIO_FILE, "can not get current audio file"), \
-       PARA_ERROR(GET_STREAM, "can not get current stream"), \
-       PARA_ERROR(NO_STREAM, "no such stream"), \
-       PARA_ERROR(AUDIO_FILE, "no such audio file"), \
-       PARA_ERROR(GET_QUERY, "can not get query for specified stream"), \
-       PARA_ERROR(TMPFILE, "error while writing temporary file"), \
-       PARA_ERROR(META, "can not get meta data"), \
-       PARA_ERROR(MYSQL_INIT, "can not initialize mysql connection"), \
-       PARA_ERROR(NO_MYSQL_PASSWD, "fatal: no mysql passord given"), \
-       PARA_ERROR(NO_AF_DIR, "fatal: audio file directory not given"), \
-
-
 #define COMMAND_ERRORS \
        PARA_ERROR(COMMAND_SYNTAX, "syntax error in command"), \
        PARA_ERROR(AUTH, "did not receive auth request"), \
@@ -376,10 +341,6 @@ extern const char **para_errlist[];
        PARA_ERROR(BAD_USER, "you don't exist. Go away."), \
 
 
-#define PLAYLIST_SELECTOR_ERRORS \
-       PARA_ERROR(LOAD_PLAYLIST, "failed to load playlist"), \
-
-
 #define IPC_ERRORS \
        PARA_ERROR(SEM_GET, "failed to create semaphore"), \
        PARA_ERROR(SEM_REMOVE, "can not remove semaphore"), \
@@ -394,15 +355,11 @@ extern const char **para_errlist[];
 
 
 #define DCCP_RECV_ERRORS \
-       PARA_ERROR(ADDR_INFO, "getaddrinfo error"), \
        PARA_ERROR(DCCP_OVERRUN, "dccp output buffer buffer overrun"), \
-       PARA_ERROR(DCCP_CONNECT, "dccp connect error"), \
        PARA_ERROR(DCCP_RECV_EOF, "dccp_recv: end of file"), \
 
 
 #define DCCP_SEND_ERRORS \
-       PARA_ERROR(DCCP_BIND, "dccp bind error"), \
-       PARA_ERROR(DCCP_LISTEN, "dccp listen error"), \
        PARA_ERROR(DCCP_WRITE, "dccp write error"), \
 
 
@@ -411,6 +368,9 @@ extern const char **para_errlist[];
        PARA_ERROR(CHDIR, "failed to change directory"), \
        PARA_ERROR(OPEN, "failed to open file"), \
        PARA_ERROR(CHDIR_PERM, "insufficient permissions to chdir"), \
+       PARA_ERROR(EMPTY, "file empty"), \
+       PARA_ERROR(MMAP, "mmap error"), \
+       PARA_ERROR(MUNMAP, "munmap failed"), \
 
 
 #define WRITE_ERRORS \
@@ -462,25 +422,26 @@ extern const char **para_errlist[];
 #define CHUNK_QUEUE_ERRORS \
        PARA_ERROR(QUEUE, "packet queue overrun"), \
 
+
 /** \endcond */
 
 /**
- * the subsystem shift
+ * The subsystem shift.
  *
  * 255 error codes ought to be enough for every subsystem. Use the higher bits
- * of the return value to encode the subsystem number
+ * of the return value to encode the subsystem number.
  */
 #define SS_SHIFT 8
 
 /**
- * compute the subsystem offset
+ * Compute the subsystem offset.
  *
- * It is given by x * 2**8 where \a x is the subsystem number
+ * It is given by x * 2**8 where \a x is the subsystem number.
  */
 #define SS_OFFSET(ss) (SS_ ## ss << SS_SHIFT)
 
 /**
- * make the enum of all errors of one subsystem
+ * Make the enum of all errors of one subsystem.
  *
  * As zero should not be an error, we define a dummy enum entry with value
  * 2**ss. That lets the real errors start at 2**ss + 1.
@@ -490,14 +451,14 @@ extern const char **para_errlist[];
        ss ## _ERRORS}
 
 /**
- * determine the subsystem number from the error number
+ * Determine the subsystem number from the error number.
  *
  * Easy, it's just \a num / 2**8.
  */
 #define ERRNUM_TO_SS(num) ((num) >> SS_SHIFT)
 
 /**
- * determine the index of an error number
+ * Determine the index of an error number.
  *
  * Also easy: It's the lower 8 bits of num.
  */
@@ -516,27 +477,27 @@ static inline int is_errno(int val, int _errno)
 }
 
 /**
- * paraslash's version of strerror(3)
+ * Paraslash's version of strerror(3).
  *
- * expands to the error text of \a num (a string constant).
+ * Expands to the error text of \a num (a string constant).
  */
 #define PARA_STRERROR(num) IS_SYSTEM_ERROR(num)? \
        strerror((num) & ((1 << SYSTEM_ERROR_BIT) - 1)) : \
        para_errlist[ERRNUM_TO_SS(num)] [ERRNUM_TO_INDEX(num)]
 
 /**
- * define the error list for one subsystem
+ * Define the error list for one subsystem.
  #
  * The first entry (index 0) is always the name of the subsystem
- * Used by macros in config.h (generated by configure)
+ * Used by macros in config.h (generated by configure).
  */
 #define DEFINE_ERRLIST(ss) const char * ss ## _ERRLIST[] = {#ss, ss ## _ERRORS}
 
 /**
- * activate errors for one subsystem.
+ * Activate errors for one subsystem.
  *
- * Each executable needs only the error lists of those subssystems it is
- * actually linked with. We always reserve space for NUM_SS char ** pointers,
+ * Each executable needs only the error lists of those subsystems it is
+ * actually linked with. We always reserve space for NUM_SS char pointers,
  * but only init those of the needed subsystems. This macro is used by macros
  * in config.h (generated by configure).
  */
@@ -549,5 +510,5 @@ static inline int is_errno(int val, int _errno)
 #define PARA_ERROR(err, msg) E_ ## err
 #include "error2.h"
 #undef PARA_ERROR
-/* rest of the world only sees the error text */
+/* Rest of the world only sees the error text. */
 #define PARA_ERROR(err, msg) msg