- #168 Add header guards for C++ linkage.
- #163 Fix bug to check for ping responses within
MQTT_PINGRESP_TIMEOUT_MS
instead of the entire keep alive interval. - #159 Add more checks for malformed packets when deserializing acknowledgments.
- #118 Use the
stdbool.h
header file instead of using preprocessor checks for whenbool
is not defined. This also providesstdbool.readme
andstdint.readme
files in the case that a non-C99 compiler does not provide the respective header. - #120 Introduce a
MQTT_RECV_POLLING_TIMEOUT_MS
configuration macro to control the timeout for retrying zero byte network read operations. Previously, network read attempts were controlled by a runtime timeout parameter, which could result in a premature timeout even when data could still be read. Now, reads will wait for at least the macro timeout value before returning error. Conversely, the macro timeout value is now the maximum duration during which no data may be received, regardless of the timeout passed at runtime. - #124, #127, Introduce a
MQTT_SEND_RETRY_TIMEOUT_MS
configuration macro to control the similar case of retrying zero byte transport send operations. - #139 Add a parameter check for empty topic filters in SUBSCRIBE and UNSUBSCRIBE packets.
- #107, #109, #121 Improve continuous integration checks.
- #110 Rename the master branch to main.
- #113, #116, #117, #125 Update logging and cast to C standard types for logs.
- #115, #122, #128, #132, #133, #136, #138 Minor documentation updates.
- #83 Accept duplicate publishes regardless of the value of the "DUP" flag.
- #86 Remove
const
qualifier from transport interface function pointers. - #91
transport_interface.h
was moved to theinterface/
directory.
- #69, #80, #95, #98 Minor documentation updates.
- #71 Set publish payloads to NULL when they are zero length.
- #74 Resolve clang build warnings from the unit tests.
- #75 Configure submodules to not be cloned by default.
This is the first release of a coreMQTT client library in this repository.
The MQTT library is a client-side implementation that is compliant with the MQTT 3.1.1 specification. It is optimized for resource-constrained devices, and does not allocate any memory.