Commit Graph

693 Commits

Author SHA1 Message Date
Omar Polo c92b802b6a add `param' keyword 2021-06-11 15:49:46 +00:00
Omar Polo f740b61b03 more params from and send a custom list 2021-06-11 15:48:56 +00:00
Omar Polo 6957a8c27f reword last sentence 2021-06-04 07:14:50 +00:00
Omar Polo 0c7a1d3cf3 improve docker example 2021-06-04 07:13:37 +00:00
Omar Polo 3a1bd9ab49 sync 2021-05-27 09:46:00 +00:00
Omar Polo f48e3b85a9 move gg to regress 2021-05-24 13:48:55 +00:00
Omar Polo 0d047efcb4 refactor fastcgi block 2021-05-24 09:09:10 +00:00
Omar Polo 8ff40039e8 document `fastcgi' config option 2021-05-24 09:07:28 +00:00
Omar Polo ce2c9edbc2 define and use GMID_VERSION 2021-05-15 11:11:56 +00:00
Omar Polo d1051bfaa0 define some more fcgi param 2021-05-15 11:10:55 +00:00
Omar Polo 1feaf2a618 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.
2021-05-15 10:31:43 +00:00
Omar Polo 91b9f2a8f9 const-ify strip_path 2021-05-15 10:07:21 +00:00
Omar Polo 571d20fbb3 fmt 2021-05-15 10:04:58 +00:00
Omar Polo 0773413c1d correct the description of `strip'
now it's also used in the path lookup process
2021-05-15 09:51:45 +00:00
Omar Polo 1eb3631d10 certificate generation (bugfix and improvement)
don't add gmid as organisation when generating the certificate, and
set the version to 3, so it's compatible with java/android clients.

Found by Gnuserland, thanks!
2021-05-12 17:37:22 +00:00
Omar Polo 58d51f2c11 gmid don't enforce anymore that a root is specified 2021-05-11 20:20:02 +00:00
Omar Polo 23a5aab4ce drop forward declaration of struct client
it's been since the switch to libevent that is no longer needed.
2021-05-11 19:41:16 +00:00
Omar Polo 84821dc0ac sync 2021-05-09 18:31:18 +00:00
Omar Polo 8ad1c57024 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 :)
2021-05-09 18:23:36 +00:00
Omar Polo 50310aff33 added missing prototype 2021-05-04 18:19:47 +00:00
Omar Polo 419e32b05e sync 2021-05-03 16:12:53 +00:00
Omar Polo c705ecb1ba factorize all "only once" checks
and while there add some more
2021-05-03 16:11:28 +00:00
Omar Polo 7b2d743260 move pidfile & cgi to global vars 2021-05-01 12:17:42 +00:00
Omar Polo 7aa9258633 make more explicit the per-location roots test 2021-04-30 19:08:27 +00:00
Omar Polo 737a6b50c5 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.
2021-04-30 19:07:37 +00:00
Omar Polo fdea6aa0bc allow ``root'' rule to be specified per-location block 2021-04-30 17:16:34 +00:00
Omar Polo adbe6a6493 always use ensure_absolute_path and improve its error message 2021-04-30 16:17:07 +00:00
Omar Polo 17a04409b5 typo in docker example 2021-04-29 19:52:50 +00:00
Omar Polo 8070ffa70f typo (again) 2021-04-29 19:50:25 +00:00
Omar Polo 7a4f742657 typo 2021-04-29 19:48:47 +00:00
Omar Polo 08ce6f5273 tweaked the readme a bit 2021-04-29 19:46:51 +00:00
Omar Polo d06d6f4bba sort tokens 2021-04-29 19:13:16 +00:00
Omar Polo 6a5e709beb typo: missing Ic 2021-04-29 18:29:55 +00:00
Omar Polo cc8c2901ad added ``alias'' option to define hostname aliases for a server 2021-04-29 18:23:35 +00:00
Omar Polo 8e8b2e252c pidfile support with `-P pidfile' 2021-04-28 12:45:22 +00:00
Omar Polo 2ef7f631db wait for logger after fatal()
With -f, when the main process exits after a fatal() (usually) the
shell prompt is printed before the logger message.

This adds a small poll to wait for the logger process to exit.
2021-04-28 12:43:17 +00:00
Omar Polo 48b69cb2dc fix some logging
- we can't use log_* or fatal() before logger_init
- err -> errx if errno isn't involved
2021-04-28 12:43:17 +00:00
Omar Polo d89a9060f8 fatal: send log to logger 2021-04-28 12:43:17 +00:00
Omar Polo 42447f673f send priority to the logger process 2021-04-28 12:43:17 +00:00
Omar Polo 9cc630aa63 added ``env'' option to define environment vars for CGI scripts 2021-04-28 12:43:17 +00:00
Omar Polo e6ca8eb156 lower log priority for fatal errors from CRIT to ERR
found by Anna, thanks!
2021-04-28 12:43:17 +00:00
Omar Polo 419a423520 keep verbosity level after config reload 2021-04-28 12:42:36 +00:00
Omar Polo c79b63f580 typo 2021-04-27 07:14:00 +00:00
Omar Polo 1b333122a9 typo 2021-04-26 20:58:06 +00:00
Omar Polo 578f13e4b2 add compat for reallocarray 2021-04-25 12:50:19 +00:00
Omar Polo b5fdc32e75 use memcpy instead of bcopy
memcpy is ANSI C89, bcopy seems to be an history BSD function.
2021-04-25 12:49:21 +00:00
Omar Polo 5aba63956a d->d_namelen doesn't seem to be available on linux 2021-04-25 12:45:17 +00:00
Omar Polo e76f2c74b8 don't save the directory fd in c->pfd
scandir_fd already calls closedir, which in turns closes the fd
2021-04-25 12:19:06 +00:00
Omar Polo 11c986679a sort the auto index alphabetically 2021-04-25 12:06:54 +00:00
Omar Polo bb4be662f1 specify the develop process 2021-04-25 12:01:34 +00:00