summaryrefslogtreecommitdiff
path: root/xs_mime.h
diff options
context:
space:
mode:
authorGravatar default2022-09-25 21:02:47 +0200
committerGravatar default2022-09-25 21:02:47 +0200
commite132ce5076db459642b07b7e85af80f4c353edf7 (patch)
tree63c823f0d3b023647031a2e02c058a6a9bbc7564 /xs_mime.h
parentMinor tweak in http signatures. (diff)
downloadpenes-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.h52
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
7char *xs_mime_by_ext(char *file);
8
9#ifdef XS_IMPLEMENTATION
10
11/* intentionally brain-dead simple */
12struct _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
30char *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 */