Add comments about always setting INFER_EXTENSION.
authorSebastien Douheret <sebastien.douheret@iot.bzh>
Mon, 6 Mar 2017 09:50:17 +0000 (10:50 +0100)
committerSebastien Douheret <sebastien.douheret@iot.bzh>
Mon, 6 Mar 2017 09:50:17 +0000 (10:50 +0100)
INFER_EXTENSION must always be set in order to provide right mimetypes for
some files.
For example mimetype for css files must be 'text/css' and not 'text/plain' as
returned by libmagic. If mimetype is not correct, css files of HTML5 webapps
will be not correctly interpreted resulting in a strange rendering in browser
like Chrome.

Change-Id: I7f0d9f97ede19308c87256f7850f5c51135827f3
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
src/CMakeLists.txt
src/afb-hreq.c

index 0780cb4..08a2290 100644 (file)
@@ -23,6 +23,7 @@ endif(CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
 INCLUDE(FindPkgConfig)
 
 ADD_DEFINITIONS(-DBINDING_INSTALL_DIR="${binding_install_dir}")
+# Always add INFER_EXTENSION (more details in afb-hreq.c)
 ADD_DEFINITIONS(-DINFER_EXTENSION)
 
 CHECK_INCLUDE_FILES(magic.h HAVE_MAGIC_H)
index 5052cca..00d4b0e 100644 (file)
@@ -274,6 +274,12 @@ static const char *mimetype_fd_name(int fd, const char *filename)
        const char *result = NULL;
 
 #if defined(INFER_EXTENSION)
+       /*
+        * Set some well-known extensions
+        * Note that it is mandatory for example for css files in order to provide
+        * right mimetype that must be text/css (otherwise chrome browser will not
+        * load correctly css file) while libmagic returns text/plain.
+        */
        const char *extension = strrchr(filename, '.');
        if (extension) {
                static const char *const known[][2] = {