diff options
| author | 2022-09-25 21:02:47 +0200 | |
|---|---|---|
| committer | 2022-09-25 21:02:47 +0200 | |
| commit | e132ce5076db459642b07b7e85af80f4c353edf7 (patch) | |
| tree | 63c823f0d3b023647031a2e02c058a6a9bbc7564 /xs_mime.h | |
| parent | Minor tweak in http signatures. (diff) | |
| download | penes-snac2-e132ce5076db459642b07b7e85af80f4c353edf7.tar.gz penes-snac2-e132ce5076db459642b07b7e85af80f4c353edf7.tar.xz penes-snac2-e132ce5076db459642b07b7e85af80f4c353edf7.zip | |
New function msg_actor().
Diffstat (limited to 'xs_mime.h')
| -rw-r--r-- | xs_mime.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/xs_mime.h b/xs_mime.h new file mode 100644 index 0000000..699ab39 --- /dev/null +++ b/xs_mime.h | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | /* copyright (c) 2022 grunfink - MIT license */ | ||
| 2 | |||
| 3 | #ifndef _XS_MIME | ||
| 4 | |||
| 5 | #define _XS_MIME | ||
| 6 | |||
| 7 | char *xs_mime_by_ext(char *file); | ||
| 8 | |||
| 9 | #ifdef XS_IMPLEMENTATION | ||
| 10 | |||
| 11 | /* intentionally brain-dead simple */ | ||
| 12 | struct _mime_info { | ||
| 13 | char *type; | ||
| 14 | char *ext; | ||
| 15 | } mime_info[] = { | ||
| 16 | { "application/json", ".json" }, | ||
| 17 | { "image/gif", ".gif" }, | ||
| 18 | { "image/jpeg", ".jpeg" }, | ||
| 19 | { "image/jpeg", ".jpg" }, | ||
| 20 | { "image/png", ".png" }, | ||
| 21 | { "image/webp", ".webp" }, | ||
| 22 | { "text/css", ".css" }, | ||
| 23 | { "text/html", ".html" }, | ||
| 24 | { "text/plain", ".txt" }, | ||
| 25 | { "text/xml", ".xml" }, | ||
| 26 | { NULL, NULL } | ||
| 27 | }; | ||
| 28 | |||
| 29 | |||
| 30 | char *xs_mime_by_ext(char *file) | ||
| 31 | /* returns the MIME type by file extension */ | ||
| 32 | { | ||
| 33 | struct _mime_info *mi = mime_info; | ||
| 34 | char *p = NULL; | ||
| 35 | |||
| 36 | while (p == NULL && mi->type != NULL) { | ||
| 37 | if (xs_endswith(file, mi->ext)) | ||
| 38 | p = mi->type; | ||
| 39 | |||
| 40 | mi++; | ||
| 41 | } | ||
| 42 | |||
| 43 | if (p == NULL) | ||
| 44 | p = "application/octet-stream"; | ||
| 45 | |||
| 46 | return p; | ||
| 47 | } | ||
| 48 | |||
| 49 | |||
| 50 | #endif /* XS_IMPLEMENTATION */ | ||
| 51 | |||
| 52 | #endif /* XS_MIME */ | ||