-
Probably I also need a flag to fake already being upgraded, because otherwise we never get passed the complicated websocket handshake.
-
This can be called by a fuzzer like afl-fuzz.
-
This fixes the 100ms wait time requirement.
-
This allows creation of multiple listeners, with different protocols and/or SSL certificates. Related change: settings is now a class that is copyable and assignable, and is done so to each thread on reload. Semi-related fix: fix crash in quit when multiple threads initiated it. This came to light when testing the auth plugin settings.
-
The ping/pong is actually untested at this point, because Paho (my test client for now) doesn't do those. I wonder if any do, because MQTT already has ping/pong.
-
It's also used to reload settings. Settings are copied to threads, to avoid concurrency issues.
-
And some side issues.
-
This includes a timer mechanism.
-
It also contains some related improvements that I needed: * Show disconnect reason * Fix the while condition for doing write() to avoid an unnecessary call * Config reloading logic
-
Also reloading of settings, which re-opens the log file.
-
It can be defined in the config file, along with options.
-
We use epoll now to change readiness.
-
Because the connectionClose would set fd=-1, clients were never properly removed from the map, because the fd is the key. Also fixed a locking issue when an exception happened.
-
I put the main app in a seperate class for it, because it was easier.