Commit Briefs

Omar Polo

remove not so useful starts_with()

replace its only usage with strncmp(). it's likely faster too.


Omar Polo

remove a long, long unused function


Omar Polo

remove useless logging


Omar Polo

don't call client_close() from fcgi/proxy bev handlers

We might end up calling client_close() from start_reply(), but that will free the fcgi/proxy bufferevent while they're still used on the stack. Instead, start_reply() only sets REQUEST_DONE and exits, returning the error eventually, so callers know when to stop.


Omar Polo

update changelog



Omar Polo

implement fastcgi strip number


Omar Polo

lower debug log priority


Omar Polo

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.



Omar Polo

move strip_path to utils.c



Omar Polo

drop the __bounded__ attribute

breaks the build with -Werror depending on the compiler.


Omar Polo

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.


Omar Polo

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.