Commits
Commit:
e5d82d9472513ef742dbb0b5ac451337625feb58
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat Mar 19 11:02:42 2022 UTC
const-ify some tables

matches found with

% grep -R '=[ ]*{' . | fgrep -v const
Commit:
4842c72d9f3f45478cb641e15a3272e541fb8a18
Author:
Omar Polo <op@omarpolo.com>
Date:
Mon Oct 18 10:05:55 2021 UTC
fmt
Commit:
4cd25209651f224be8c34d6006ef689963ce37d5
Author:
Omar Polo <op@omarpolo.com>
Date:
Thu Oct 7 10:47:02 2021 UTC
one FastCGI connection per client

FastCGI is designed to multiplex requests over a single connection, so
ideally the server can open only one connection per worker to the
FastCGI application and that's that.

Doing this kind of multiplexing makes the code harder to follow and
easier to break/leak etc on the gmid side however. OpenBSD' httpd
seems to open one connection per client, so why can't we too?

One connection per request is still way better (lighter) than using
CGI, and we can avoid all the pitfalls of the multiplexing (keeping
track of "live ids", properly shut down etc...)
Commit:
d046e4d6b500583cda8d2561e47c790eaedd007f
Author:
Omar Polo <op@omarpolo.com>
Date:
Mon Oct 4 09:31:43 2021 UTC
copy only `len' bytes, not the whole buffer

We ended up copying too much data from the fastcgi process.
Commit:
efe7d180292726775fb3ae5e6af593490a264c60
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat Oct 2 17:20:56 2021 UTC
new I/O handling on top of bufferevents

This is a big change in how gmid handles I/O. Initially we used a
hand-written loop over poll(2), that then was evolved into something
powered by libevent basic API. This meant that there were a lot of
small "asynchronous" function that did one step, eventually scheduling
the re-execution, that called each others in a chain.

The new implementation revolves completely around libevent'
bufferevents. It's more clear, as everything is implemented around the
client_read and client_write functions.

There is still space for improvements, like adding timeouts for one, but
it's solid enough to be committed as is and then further improved.
Commit:
b618111a681d278d0d72fbdb526542bebf8fce02
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat Oct 2 17:20:10 2021 UTC
log more details for FastCGI errors

add the reported request id if there's a mismatch and both the gai error
and the errno value if getnameinfo fails.
Commit:
5f37f9c20d1773ad0b95b16f67a33f75fea326f4
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat Oct 2 17:20:10 2021 UTC
simplify error check
Commit:
c016b65ca9ca4e4f84f270feb76b1038cb13f358
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat Oct 2 17:20:10 2021 UTC
typo
Commit:
741b69be96397e0ec6db0c84b4ead4f41363ea98
Author:
Omar Polo <op@omarpolo.com>
Date:
Sun Sep 26 17:00:07 2021 UTC
fastcgi completely asynchronous

This changes the fastcgi implementation from a blocking I/O to an
async implementation on top of libevent' bufferevents.

Should improve the responsiveness of gmid especially when using remote
fastcgi applications.
Commit:
59c7ee13b474c7929914075b01cd3593b1beaca7
Author:
Omar Polo <op@omarpolo.com>
Date:
Tue Jul 6 10:56:01 2021 UTC
fmt
Commit:
090b8a89faa34cdc41c41e32845f1f5b444536e4
Author:
Omar Polo <op@omarpolo.com>
Date:
Tue Jul 6 10:54:27 2021 UTC
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:
e18b070da8296bb0d5e30c8211aba43cb038d427
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat Jun 12 12:35:15 2021 UTC
indentation
Commit:
f740b61b03c9e31f4915ee7d7444d64fc320b41c
Author:
Omar Polo <op@omarpolo.com>
Date:
Fri Jun 11 15:48:56 2021 UTC
more params from and send a custom list
Commit:
ce2c9edbc230a052627540e3fd0f8a8b190be850
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat May 15 11:11:56 2021 UTC
define and use GMID_VERSION
Commit:
d1051bfaa091850cc98f54b07577f2f721890acd
Author:
Omar Polo <op@omarpolo.com>
Date:
Sat May 15 11:10:55 2021 UTC
define some more fcgi param
Omar Polo