Commits
- Commit:
a8a1f439210de9538b196c6bb5470c306379128c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
style(9)-ify
- Commit:
090b8a89faa34cdc41c41e32845f1f5b444536e4
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gracefully shut down fastcgi backends
we need to delete the events associated with the backends, otherwise
the server process won't ever quit.
Here, we add a pending counter to every backend and shut down
immediately if they aren't handling any client; otherwise we try to
close them as soon as possible (i.e. when they close the connection to
the last connected client.)
- Commit:
3b21cca385c403247960cfe9385dda1d56f28670
- From:
- Omar Polo <op@omarpolo.com>
- Date:
allow to define macros in the config file
Macros can be defined at the top of the configuration file:
dir = "/var/gemini"
cert = "/etc/keys"
and re-used later, for example
server "foo" {
root "$dir/foo" # -> /var/gemini/foo
cert "$cert/foo.pem" # -> /etc/keys/foo.pem
}
- Commit:
fdb43a4c0e347c20c0f13c3145165393c6c10883
- From:
- Omar Polo <op@omarpolo.com>
- Date:
define GMID_STRING and reuse-it
GMID_VERSION follows the CGI/FastCGI style, i.e. project_name/version.
Define GMID_STRING with a more "human" variant "project_name version",
and reuse that in the --help and --version codepath.
- Commit:
74f0778b9ae93a700d8b0f759b05f24e69f54921
- From:
- Omar Polo <op@omarpolo.com>
- Date:
drop the dependency on lex by implementing yylex by ourselves
The actual implementation is based off doas' parse.y. This gave us
various benefits, like cleaner code, \ to break long lines, better
handling of quotes etc...
- Commit:
e952c5052a0c524eee6d8151b1af96ce2c94ca18
- From:
- Omar Polo <op@omarpolo.com>
- Date:
allow sending fd to log on to the logger process
the logger process now can receive a file descriptor to write logs
to. At the moment the logic is simple, if it receives a file it logs
there, otherwise it logs to syslog. This will allow to log on custom
log files.
- Commit:
f740b61b03c9e31f4915ee7d7444d64fc320b41c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
more params from and send a custom list
- Commit:
ce2c9edbc230a052627540e3fd0f8a8b190be850
- From:
- Omar Polo <op@omarpolo.com>
- Date:
define and use GMID_VERSION
- Commit:
1feaf2a618ee1c4771fee80ced7acf31fe40fdae
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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.
- Commit:
23a5aab4ce21987b36a72e32b9ef1b82b910e797
- From:
- Omar Polo <op@omarpolo.com>
- Date:
drop forward declaration of struct client
it's been since the switch to libevent that is no longer needed.
- Commit:
8ad1c570242cd93f0802931621b49b2510b338e7
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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 :)
- Commit:
50310aff335912edde625a5cde3729e34783fd7c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
added missing prototype
- Commit:
fdea6aa0bca24f6f947e2126ce101fd59caa7a31
- From:
- Omar Polo <op@omarpolo.com>
- Date:
allow ``root'' rule to be specified per-location block
- Commit:
cc8c2901ad544d336374887451dc8c85a5ae1264
- From:
- Omar Polo <op@omarpolo.com>
- Date:
added ``alias'' option to define hostname aliases for a server
- Commit:
9cc630aa63cfd22553912b5a1fc41a71776cb272
- From:
- Omar Polo <op@omarpolo.com>
- Date:
added ``env'' option to define environment vars for CGI scripts