-
This avoids changing which thread runs the code. Also let auth_plugin_serialize_init affect cleanup serialization.
-
Firefox worked without it. Chrome didn't.
-
One part is a fix, where the frame was advertised to be bigger than it was. The other change is making it possible to send chunks larger than the initial buffer size, by resizing the buffer (and resetting it later).
-
We interpret the close frames as closed transport, and therefore set 'error' to 'disconnected'. See code comments.
-
MQTT-3.8.3-3
-
MQTT-3.6.1-1
-
This fixes dpkg errors on removal.
-
Mandatory normative statement MQTT-3.1.2-6.
-
[MQTT-2.3.1-1]
-
When there are many sessions, the copying action can actually take some time, and memory. A vector is faster and uses (a little) less memory. This is a theoretical fix, without benchmarks to support it.
-
The only mutable session data of a client is QoS related, so when we're copying sessions (for saving them), we need to lock the QoS data, because that gets modified from active client traffic in worker threads. Note: not super well tested at this point, nor was I ever able to trigger actual errors despite long stress testing, so it's a theoretical fix.
-
Empty leaves weren't removed, causing increase in memory use.
-
This method incurs no extra CPU load when messages aren't dropped.
-
One was confirmed: writing an mqtt packet into a client that disconnected after checking the weak pointer for validity. The rest made sense to change as well.
-
I have no explanation for it, but it happens (with QMQTT, should it matter).