before, the handlers were not waited for, so the client was usually
destructed before lua got to the actual event handler call. Now, the
handler is called and waited on, and once all handlers are done, the
client is properly removed from the players internally, thus making
calls to GetPlayerName, GetPlayerIdentifiers, etc. return nil etc.
Before, a lot of common errors went unnoticed, due to insufficient
compiler diagnostics. This commit fixes this by adding a lot of new
diagnostics, and fixing the issues found by this.
The event loop tries to run no faster than every 10ms. If it detects
that it goes faster, it would incorrectly calculate the difference, and
then wait (what I assume was) way too long or too short.
Either way, now it's fixed and it correctly works, even when introducing
new lua states.
There are two CallStrategies:
- BestEffort (default): Will try to get your event to trigger at the specified
interval, but will refuse to queue handlers if a handler takes too
long.
- Precise: Will enqueue event handlers at the exact interval specified.
Can lead to the queue filling up if the handler takes longer than the
interval.
* Add preliminary work for HTTP health endpoint
* Http: Fix infinite loop bug in Tx509KeypairGenerator::generateKey()
* update commandline
* Add TLS Support class for use with http server
* Add preliminary HTTP Server; TLS still broken; fix in later commit
* Fix TLS handshake, due to server being unable to serve key/certfile in 'Http.h/Http.cpp'; Cause was httlib not being threadsafe due to being a blocking http library
* Run clang format
* Add option to configure http server port via ServerConfig
* TConfig: add HTTPServerPort to config parsing step
* Fix SSL Cert / Key path not auto generating when not existing
* Add health endpoint; Fix SSL Cert serial no. not refreshing when regenerating
* Switch arround status codes in /health route
* Run clang format
Co-authored-by: Lion Kortlepel <development@kortlepel.com>