Commit Briefs

Omar Polo

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.


Omar Polo

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.)


Omar Polo

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.


Omar Polo

const-ify strip_path


Omar Polo

fmt


Omar Polo

fastcgi: a first implementation (github/master, origin/master)

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 :)


Omar Polo

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.




Omar Polo

don't save the directory fd in c->pfd

scandir_fd already calls closedir, which in turns closes the fd



Omar Polo

rename reschedule_* to yield_*



Omar Polo

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.


Omar Polo

move all sandbox-related code to sandbox.c

while there, add capsicum for the logger process