don't load the built-in list when using `types'

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.

print a deprecation message for the map rule

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

add type { ... } block to define mime types mapping The `map' rule is powerful but quite annoying to use if you have/need lots of entries (and clutters the configuration file too.) The `type' block is blatantly stolen from httpd(8) and allows for a way more nice usage: type { include "/usr/share/misc/mime.types" } or even type { text/markdown md markdown text/x-perl pl pm # ... }

add missing token include to the list of tokens

include gmid.h before other headers to get all the prototypes > implicit declaration of function 'asprintf'; did you mean 'vsprintf'?

allow using a custom hostname for SNI during proxying add a `sni' option for the `proxy' block: the given name is used instead of the one extracted by the `relay-to' rule.

add `require client ca' for proxy blocks refactor the code that calls validate_against_ca into an helper function to reuse it in both apply_require_ca and (optionally) in apply_reverse_proxy.

proxy: allow multiple proxy blocks, matching options and validations as a side effect the order of the content of a server block is relaxed: options, location or proxy blocks can be put in any order.

bump copyright year :)

allow to disable TLS when proxying requests

move %token USER to its own line

plug some memory leaks in config parsing I forgot to free some strings when they're no more used.

add `protocols' option to `proxy' rule