Commits


portable: release 0.118.1 Fix a mistake with the build where certain header files (sha1.h and sha2.h) needed to be included portably.


portable: bump version for -maint release


portable: fix 0.118 build Remove sha{1,2}.h from source files as these are included portably.


portable: correct typo in CHANGELOG (0.118)


portable: set next version


portable: release 0.118


bump version number


CHANGES for 0.118


fix gotwebd regress failure introduced with querystring changes A folder parameter addressing the root directory is expected to be an empty string rather than "/".


portable: libutils: sync imsg


block gotwebd requests with paths that point outside the repository directory ok op@


remove unused resp_event variable from gotwebd struct request


remove now unused 'gotweb_cur' variable from gotwebd


rename GOTWEBD_PROC_SERVER back to GOTWEBD_PROC_SOCKETS


fix process ID passed in gotwebd fcgi send_parsed_params() and abort_request()


remove the now unused "server_cnt" gotwebd variable


move reyk's urldecode() copyright along


httpd will always expect an FCGI end record from us, so send it always


clamp qs->index_page to the correct range, we want a positive int


move parsing of gotwebd querystrings into the pledge("stdio") process Fields of the querystring structure become fixed-sized buffers for easy passing over imsg. This means we can no longer check pointers in this structure for NULL. Instead we have to check for empty strings. ok op@


remove some debug logging I added to gotwebd and forgot to remove


dispatch new requests to the least-busy gotwebd worker Instead of distributing requests across workers in a round-robin fashion keep track of how many requests a given worker has queued and send new requests to the worker which has the least amount of work queued for it. This makes gotwebd much more responsive than stupid round-robin, even though the new strategy is still not optimal because different types of requests carry different cost. E.g. blaming a file is usually heavier than listing trees. But it might be good enough, for now. Let's try and see. ok op@


run just one gotwebd process which listens on sockets The listen statement is a global configuration setting and it does not make sense to have more than one process listening. Run just one process which listens and is now again called "sockets", having been renamed from "sockets" to "server" some time ago. There is no good reason to run more than one "server" since server-specific settings from gotwebd.conf are selected based on the SERVER_NAME sent in the FastCGI request. This selection is handled by the gotweb.c process. ok op@


use consistent mdoc markup for unix domain sockets in gotwebd.conf.5


sockets_launch: simplify listen() handling * clean up the SOCKS_BACKLOG versus SOMAXCONN usage * factor out just one listen() call * slightly improve the logging by showing the socket "name" too. ok stsp@