From dfab99ace5f1193ca6df0ed7b704ea450a2fae95 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 26 Sep 2020 14:36:52 -0400 Subject: Serve files from root --- src/mime.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/mime.c (limited to 'src/mime.c') diff --git a/src/mime.c b/src/mime.c new file mode 100644 index 0000000..5722357 --- /dev/null +++ b/src/mime.c @@ -0,0 +1,30 @@ +#include +#include +#include "mime.h" + +static bool +has_suffix(const char *str, const char *suff) +{ + size_t a = strlen(str), b = strlen(suff); + if (a < b) { + return false; + } + return strncmp(&str[a - b], suff, b) == 0; +} + +const char * +gmnisrv_mimetype_for_path(const char *path) +{ + // TODO: Read /etc/mime.types + // TODO: Consider adding content-disposition fields like filename + if (has_suffix(path, ".gmi") || has_suffix(path, ".gemini")) { + return "text/gemini"; + } + if (has_suffix(path, ".txt")) { + return "text/plain"; + } + if (has_suffix(path, ".png")) { + return "image/png"; + } + return "application/octet-stream"; +} -- cgit v1.2.3