afb-hreq: Add predefined mime-types
[src/app-framework-binder.git] / src / afb-hreq.c
index db804eb..5f44cba 100644 (file)
@@ -271,13 +271,24 @@ static const char *mimetype_fd_name(int fd, const char *filename)
        const char *extension = strrchr(filename, '.');
        if (extension) {
                static const char *const known[][2] = {
-                       { ".js",   "text/javascript" },
-                       { ".html", "text/html" },
-                       { ".css",  "text/css" },
-                       { ".ico",  "image/x-icon"},
-                       { ".png",  "image/png" },
-                       { ".svg",  "image/svg+xml" },
-                       { ".ttf",  "application/x-font-ttf"},
+                       { ".js",        "text/javascript" },
+                       { ".html",      "text/html" },
+                       { ".css",       "text/css" },
+                       { ".ico",       "image/x-icon"},
+                       /* TODO: CHECK ME { ".ico",     "image/vnd.microsoft.icon" }, */
+                       { ".jpg",       "image/jpeg" },
+                       { ".png",       "image/png" },
+                       { ".svg",       "image/svg+xml" },
+                       { ".ttf",       "application/x-font-ttf"},
+                       { ".htm",       "text/html" },
+                       { ".xml",       "application/xml" },
+                       { ".txt",       "text/plain" },
+                       { ".wav",       "audio/x-wav" },
+                       { ".xhtml",     "application/xhtml+xml" },
+                       { ".xht",       "application/xhtml+xml" },
+                       { ".gif",       "image/gif" },
+                       { ".png",       "image/png" },
+                       { ".mp3",       "audio/mpeg" },
                        { NULL, NULL }
                };
                int i = 0;
@@ -316,8 +327,8 @@ static void req_destroy(struct afb_xreq *xreq)
        }
        afb_context_disconnect(&hreq->xreq.context);
        json_object_put(hreq->json);
-       free((char*)hreq->xreq.api);
-       free((char*)hreq->xreq.verb);
+       free((char*)hreq->xreq.request.api);
+       free((char*)hreq->xreq.request.verb);
        afb_cred_unref(hreq->xreq.cred);
        free(hreq);
 }
@@ -914,9 +925,9 @@ static void req_success(struct afb_xreq *xreq, json_object *obj, const char *inf
 
 void afb_hreq_call(struct afb_hreq *hreq, struct afb_apiset *apiset, const char *api, size_t lenapi, const char *verb, size_t lenverb)
 {
-       hreq->xreq.api = strndup(api, lenapi);
-       hreq->xreq.verb = strndup(verb, lenverb);
-       if (hreq->xreq.api == NULL || hreq->xreq.verb == NULL) {
+       hreq->xreq.request.api = strndup(api, lenapi);
+       hreq->xreq.request.verb = strndup(verb, lenverb);
+       if (hreq->xreq.request.api == NULL || hreq->xreq.request.verb == NULL) {
                ERROR("Out of memory");
                afb_hreq_reply_error(hreq, MHD_HTTP_INTERNAL_SERVER_ERROR);
        } else if (afb_hreq_init_context(hreq) < 0) {