Commits


explicitly use c->fd instead of fd Yep, fd should be the file descriptor, but for lazyness when manually calling the function sometimes we supply 0 as fd and event. Instead of fixing the usage, do as other of such functions do in this circumstances: use c->fd.


mark backend as FCGI_READY when getting a fd otherwise clients will remain stuck waiting for a pending request that doesn't exist (see apply_fastcgi switch.)


use the correct document root pass the correct loc_off to the executor, so the various variables that depends on the matched location (like DOCUMENT_ROOT) are computed correctly.


const-ify strip_path


fmt


fastcgi: a first implementation Not production-ready yet, but it's a start. This adds a third ``backend'' for gmid: until now there it served local files or CGI scripts, now FastCGI applications too. FastCGI is meant to be an improvement over CGI: instead of exec'ing a script for every request, it allows to open a single connection to an ``application'' and send the requests/receive the responses over that socket using a simple binary protocol. At the moment gmid supports three different methods of opening a fastcgi connection: - local unix sockets, with: fastcgi "/path/to/sock" - network sockets, with: fastcgi tcp "host" [port] port defaults to 9000 and can be either a string or a number - subprocess, with: fastcgi spawn "/path/to/program" the fastcgi protocol is done over the executed program stdin of these, the last is only for testing and may be removed in the future. P.S.: the fastcgi rule is per-location of course :)


ensure %p (path) is always absolute with the recent changes, sometimes the path may not start with a '/'. This ensures that %s is ALWAYS an absolute path.


allow ``root'' rule to be specified per-location block


added ``alias'' option to define hostname aliases for a server


don't save the directory fd in c->pfd scandir_fd already calls closedir, which in turns closes the fd


sort the auto index alphabetically


rename reschedule_* to yield_*


define TLS_VERSION, TLS_CIPHER and TLS_CIPHER_STRENGTH for CGI scripts


list instead of fixed-size array for vhosts and locations saves some bytes of memory and removes the limit on the maximum number of vhosts and location blocks.


move all sandbox-related code to sandbox.c while there, add capsicum for the logger process