-
I don't understand it still works on Travis CI though.
-
There's no point in keeping a vector per nanosecond.
-
There's no point in keeping a vector of removals per nanosecond.
-
This is theoretical, because I never called addCallback() after having started the timer.
-
This is fast(er).
-
This is way faster.
-
This should fix corruption. There were inexplicable stalls of timed events, and the debugger showed the names were all corrupted. std::sort can do that sort of thing, apparently.
-
And fix off-by-one error.
-
This implements the first testing version of MQTT5 support.
-
It merely drops packets when they exceed it. The specs are unclear about whether you're supposed to delay transmission until the quota is non-negative again. I decided against it because of increased complexity, and because on a continously overloaded client, this makes no sense. Effectively, this formalizes the 'max qos pending' mechanism that was already in place. It also includes PUBACK/PUBREL/PUBCOMP error handling, because that needed to be done for proper quota control.
-
The only thing it did was false trip the fuzzer.
-
Diff with 'ignore whitespace' looks clean.
-
This also contains some fixes/unifications for traditional authentication, error handling specifically.
-
The CONACK indicated that it's not supported, and the specs say to issue a disconnect when they're used after all.
-
This should prevent stale data from old clients from manipulating the session.
-
On server shutdown and when taking over a session. On disconnect, wills are queued first, we wait for the queueing to be done, then initiate disconnect. When TCP buffers are full and fds are not reported by epoll, the thread loop still exits and clients are just closed on exit.
-
I didn't count the seconds it was already waiting. It does now.
-
This required a special type WillPublish to make this easier and more logical.
-
It erroneously referred to the system function 'dup' now...
-
Also fix some bugs: - The password can be binary data. - The will topic is now also checked.
-
This is better in line with how the copy factory is meant to be used. It actually broke on the assert on 'externallyReceived' before.
-
This allows easier saving of MQTT5 properties, for which a new file version for retained messages is created. It uses the packet parsing logic.
-
This includes some logic to have threads finish their work before quitting.