Commits


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


refactoring: imsg everywhere use imsg to handle ALL kinds of IPC in gmid. This simplifies and shorten the code, and makes everything more uniform too.


move vhost_should_log call to server.c log.o is linked to some regress/ stuff. Calling from there a vhost_* function means that we should link the regress/stuff to server.o too (and that would pull in other stuff...). Moving the call is easier, and also probably better.