Commits


copyright years


hardcode the mapping text/gemini -> .gmi/.gemini It's still possible to override this automatic mapping by just adding an entry like application/octet-stream gemini gmi in the `types' block.


sort the MIME mappings and do a binary search to match


allow add_mime to fail add_mime nows allocate dinamically copies of the passed strings, so that we can actually free what we parse from the config file. This matters a lot especially with lengthy `types' block: strings that reach the internal mapping are never free'd, so every manual addition is leaked.


const-ify some tables matches found with % grep -R '=[ ]*{' . | fgrep -v const


missing comma ,


use `text/x-patch' for .patch and .diff files


fix various compilation errors Include gmid.h as first header in every file, as it then includes config.h (that defines _GNU_SOURCE for instance). Fix also a warning about unsigned vs signed const char pointers in openssl.


added support for location blocks


use recallocarray it also does an overflow check on multiplication, other than being more readable.


rename mimes to mime ; pass config esplicitly to mime* functions


moving "default type" from global options to server options


move mimes into the struct config


add "mime" and "default type" option for the configuration


improve mime handling we still have an hardcoded list, but this implements the API needed to modify the mappings.