for example, loading a library which returns a table of functions would
fail with an inexplicable (to the user) error about serialization. This
is now fixed. We no longer use a single result type, instead there are
void results and normal results, and the former simply never has to
worry about the result.
This was likely causing even more issues; if the `sol::object` was
populated before, it hitting the dtor in another path would, again, like
we've seen before, corrupt the lua stack.
this massively improves thread safety and cleanly serializes accesses
into the lua engine's result objects where accesses before were
extremely unsafe and could access a corrupt/invalid stack.
this fixes various obscure crashes related to accessing results,
without changing any observable behavior.
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>