summaryrefslogtreecommitdiff
path: root/gobex/gobex.c
diff options
context:
space:
mode:
authorBartosz Szatkowski <bulislaw@linux.com>2011-12-08 14:07:53 +0100
committerMarcel Holtmann <marcel@holtmann.org>2012-12-04 22:22:04 +0100
commitd2b34b6a68f0e00b75251f064af88af7515ee955 (patch)
tree8612ca3af4e710c43bc6f135065b87903b6c22a9 /gobex/gobex.c
parent48497a481e4cf052798bb206f08f75c28b026f2c (diff)
downloadbluez-d2b34b6a68f0e00b75251f064af88af7515ee955.tar.gz
gobex: Add translating error codes to strings
Diffstat (limited to 'gobex/gobex.c')
-rw-r--r--gobex/gobex.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/gobex/gobex.c b/gobex/gobex.c
index b374b0665..036a44a1e 100644
--- a/gobex/gobex.c
+++ b/gobex/gobex.c
@@ -114,6 +114,63 @@ struct setpath_data {
guint8 constants;
} __attribute__ ((packed));
+static struct error_code {
+ guint8 code;
+ const char *name;
+} obex_errors[] = {
+ { G_OBEX_RSP_CONTINUE, "Continue" },
+ { G_OBEX_RSP_SUCCESS, "Success" },
+ { G_OBEX_RSP_CREATED, "Created" },
+ { G_OBEX_RSP_ACCEPTED, "Accepted" },
+ { G_OBEX_RSP_NON_AUTHORITATIVE, "Non Authoritative" },
+ { G_OBEX_RSP_NO_CONTENT, "No Content" },
+ { G_OBEX_RSP_RESET_CONTENT, "Reset Content" },
+ { G_OBEX_RSP_PARTIAL_CONTENT, "Partial Content" },
+ { G_OBEX_RSP_MULTIPLE_CHOICES, "Multiple Choices" },
+ { G_OBEX_RSP_MOVED_PERMANENTLY, "Moved Permanently" },
+ { G_OBEX_RSP_MOVED_TEMPORARILY, "Moved Temporarily" },
+ { G_OBEX_RSP_SEE_OTHER, "See Other" },
+ { G_OBEX_RSP_NOT_MODIFIED, "Not Modified" },
+ { G_OBEX_RSP_USE_PROXY, "Use Proxy" },
+ { G_OBEX_RSP_BAD_REQUEST, "Bad Request" },
+ { G_OBEX_RSP_UNAUTHORIZED, "Unauthorized" },
+ { G_OBEX_RSP_PAYMENT_REQUIRED, "Payment Required" },
+ { G_OBEX_RSP_FORBIDDEN, "Forbidden" },
+ { G_OBEX_RSP_NOT_FOUND, "Not Found" },
+ { G_OBEX_RSP_METHOD_NOT_ALLOWED, "Method Not Allowed" },
+ { G_OBEX_RSP_NOT_ACCEPTABLE, "Not Acceptable" },
+ { G_OBEX_RSP_PROXY_AUTH_REQUIRED, "Proxy Authentication Required" },
+ { G_OBEX_RSP_REQUEST_TIME_OUT, "Request Time Out" },
+ { G_OBEX_RSP_CONFLICT, "Conflict" },
+ { G_OBEX_RSP_GONE, "Gone" },
+ { G_OBEX_RSP_LENGTH_REQUIRED, "Length Required" },
+ { G_OBEX_RSP_PRECONDITION_FAILED, "Precondition Failed" },
+ { G_OBEX_RSP_REQ_ENTITY_TOO_LARGE, "Request Entity Too Large" },
+ { G_OBEX_RSP_REQ_URL_TOO_LARGE, "Request URL Too Large" },
+ { G_OBEX_RSP_UNSUPPORTED_MEDIA_TYPE, "Unsupported Media Type" },
+ { G_OBEX_RSP_INTERNAL_SERVER_ERROR, "Internal Server Error" },
+ { G_OBEX_RSP_NOT_IMPLEMENTED, "Not Implemented" },
+ { G_OBEX_RSP_BAD_GATEWAY, "Bad Gateway" },
+ { G_OBEX_RSP_SERVICE_UNAVAILABLE, "Service Unavailable" },
+ { G_OBEX_RSP_GATEWAY_TIMEOUT, "Gateway Timeout" },
+ { G_OBEX_RSP_VERSION_NOT_SUPPORTED, "Version Not Supported" },
+ { G_OBEX_RSP_DATABASE_FULL, "Database Full" },
+ { G_OBEX_RSP_DATABASE_LOCKED, "Database Locked" },
+ { 0x00, NULL }
+};
+
+const char *g_obex_strerror(guint8 err_code)
+{
+ struct error_code *error;
+
+ for (error = obex_errors; error->name != NULL; error++) {
+ if (error->code == err_code)
+ return error->name;
+ }
+
+ return "<unknown>";
+}
+
static ssize_t req_header_offset(guint8 opcode)
{
switch (opcode) {