Commits


move parse_portno to gmid.c it's used only to parse the -p flag. While there add check_port_num to check the range for the port.


missing newline in deprecation notice


drop unsigned it causes a cascade of warnings on some architectures. Also, for what we're doing here, the signed/unsigned property isn't important.


@-macros, rollback changes to strings and optional semicolons * expand $-macros as string, only the new @-macros get expanded as-is * rollback changes to characters allowed in bare strings * optional semicolons in optnl, useful for readable @-macros


parsing: bring lots of goodies from OpenBSD' parse.y This allows to solve the problem with the \n in the grammar (before two following macro declaration were treated as invalid. This also brings in a nice `include' keyword.


change (again) the env/param separator: use '=' Given that env/param are new features of this release, no support for the "old" syntax is needed.


add => in env/param and `port' between hostname and port for fastcgi In the same spite of the last commit, add the missing separators between strings to avoid the auto-concat pitfalls. `=>' is used to separate between `env' and `param' arguments, while for `fastcgi' the keyword `port' is required between the hostname/ip address and the port (if provided). Since `env', `param' and `fastcgi' are all new stuff, there's no need to keep compatibility.


typo...


rename `mime MIME EXT' to `map MIME to-ext EXT' With the newish automatic string concatenation, options like `mime' that accepts two strings as parameter start to become ambiguous: which strings gets concatenated? Instead of trying to document in the manpage which argument(s) is subject to string concatenation, do the concat always and introduce a separator. In the case of mime, `to-ext' now acts as a separator to distinguish. While there, also use a new keyword because it sounds better. It's dead-easy to upgrade to the new configuration, possibly with some sed magic, but for the moment the old `mime' form is preserved: (with a warning!) Will be dropped in the next release.


use bsearch to match the keywords not that it's a bottleneck, but it's fancier this way.


don't expand macros inside the quotes Now that we have this auto concat string thingy, macros can simply expand to standalone strings in place, as single words. Forgot to point it out in previous commits, but now we can cert = "/etc/keys" server "foo" { cert $cert "/foo.crt" ... }


align


[config] concat two or more strings next to each others


don't require the strict order macro > options > servers


allow to define macros in the config file Macros can be defined at the top of the configuration file: dir = "/var/gemini" cert = "/etc/keys" and re-used later, for example server "foo" { root "$dir/foo" # -> /var/gemini/foo cert "$cert/foo.pem" # -> /etc/keys/foo.pem }