Commits
- Commit:
efb6210d7745c9466ab9a16f23d1549523428ef7
- From:
- Omar Polo <op@omarpolo.com>
- Date:
improve libevent2 handling
* add configure check
* change the way the headers are required (copied from tmux)
- Commit:
fa0299a26d6e0cc83135a7f46e74710a9d5a8efa
- From:
- Omar Polo <op@omarpolo.com>
- Date:
drop now unused trim_req_iri
- Commit:
efe7d180292726775fb3ae5e6af593490a264c60
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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:
741b69be96397e0ec6db0c84b4ead4f41363ea98
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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:
41395640e09aac151159bfd8cf33ed4f32725157
- From:
- Omar Polo <op@omarpolo.com>
- Date:
introduce IMSG_LOG_REQUEST
- Commit:
f361f7997917a42a7b377d2764c5fb7467cccb62
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move version number to configure script
- Commit:
391825e3604deef4c9dc3267dc2b6c89fc79958a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move parse_portno to gmid.c
it's used only to parse the -p flag. While there add check_port_num
to check the range for the port.
- 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