aboutsummaryrefslogtreecommitdiff
path: root/src/error.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.c')
-rw-r--r--src/error.c57
1 files changed, 13 insertions, 44 deletions
diff --git a/src/error.c b/src/error.c
index 01fae36..4b6f7c2 100644
--- a/src/error.c
+++ b/src/error.c
@@ -1,49 +1,18 @@
#include "error.h"
-#include "utils.h"
-#include <stdarg.h>
-
-void magi_error_add(struct magi_error ** error, char * format, ...)
-{
- if (error && format) {
- struct magi_error * head = malloc(sizeof(*head));
- if (head) {
- int size;
- va_list args;
-
- va_start(args, format);
- size = vsnprintf(0, 0, format, args);
- va_end(args);
-
- if (size >= 0) {
- head->message = malloc(++size);
- if (head->message) {
- va_start(args, format);
- size = vsnprintf(head->message, size, format, args);
- va_end(args);
- if (size >= 0) {
- head->prev = *error;
- *error = head;
- return;
- } else {
- free(head->message);
- }
- }
- }
-
- free(head);
- }
- }
-}
-
-void magi_error_destroy(struct magi_error * error)
+const char * magi_error_message(enum magi_error error)
{
- if (error) {
- magi_error_destroy(error->prev);
- free(error->prev);
- free(error->message);
- error->prev = 0;
- error->message = 0;
- }
+ static const char * const messages[] = {
+ 0, /* magi_error_none */
+ "No boundary for multipart.", /* magi_error_nobound */
+ "Content-type is unknown.", /* magi_error_unknown */
+ "Content-type is not given.", /* magi_error_notype */
+ "Mismatch of content length.", /* magi_error_length */
+ "Cannot allocate memmory.", /* magi_error_memmory */
+ "Cannot read cookies.", /* magi_error_cookies */
+ "Cannot decode URL.", /* magi_error_urlenc */
+ "Cannot read multipart body." /* magi_error_multipart */
+ };
+ return messages[error];
}