Commit Briefs
draft the PATH_INFO and SCRIPT_NAME handling
The idea is to require SCRIPT_NAME to be defined and strip it from the beginning of the path to get PATH_INFO. Soon(tm) a `fastcgi request strip' option will be added too. Maybe even `fastcgi script name "path"` that sets SCRIPT_NAME automatically.
drop the __bounded__ attribute
breaks the build with -Werror depending on the compiler.
drop #include <sys/cdefs.h> from vis.h
Doesn't seem to be available on many systems. It is also not strictly needed since we include vis.h only after headers like stdlib.h that already pulls in the type it needs.
address the strnvis(3) portability fiasco
strnvis originates on OpenBSD. When NetBSD added it to their libc they decided to swap the argument. Without starting a holy war on the "best" argument order, adding an implementation of a function that's widely available and making its signature purposefully incompatible is beyond justification. FreeBSD (and so macos too?) followed NetBSD in this, so we end up with *two* major and incompatible strnvis implementations. libbsd is in a limbo, they started with the OpenBSD version but they'll probably switch to the NetBSD version in the future. That's why we can't have nice things. Do the right thing(tm) and check for the presence of the original strnvis(3), if not available or broken use the bundled one.
unbreak config_test() when !use_privsep_crypto
The new config_test() fails miserably when the privsep crypto engine is not enabled. As a temporary workaround, forcibly disable it during config_test() as we're not going to run anyway.