WOLFMQTT CHANGELOG

Below you will find the wolfMQTT ChangeLog documenting the changes that took place with each release of wolfMQTT since the project’s beginning in 2015.

wolfMQTT 1.1.0

(06/21/2018)

Version 1.1.0 of wolfMQTT contains bug fixes and new features including:

  • Fixed case when `use_tls` was requested but TLS feature not compiled in. (PR #57)
  • Fixed non-blocking issue that caused out of buffer error if not all of packet were received. (PR #65)
  • Fixed non-blocking mode issue that was sending multiple connect requests for examples. (PR #65)
  • Fixed non-blocking issue with ping keep alive in examples. (PR #68)
  • Fixed the Arduino example with `ENABLE_MQTT_TLS` defined (PR #78)
  • Added support for FreeRTOS TCP in wolfMQTT. (PR #58)
  • Added `README.md` section for building wolfMQTT. (PR #63)
  • Added new option to enable verbose logging `./configure --enable-debug=verbose`. (PR #65)
  • Added support for disconnect callback using `WOLFMQTT_DISCONNECT_CB` or `./configure --enable-discb`. (PR #69)
  • Added `WOLFMQTT_LOCAL` to internal API's for hidden visibility. (PR #73)
  • Added include for `wolfmqtt/options.h`. (PR #79)
  • Added IBM Watson IoT example (see `./examples/wiot/wiot`). (PR #80)
  • Updated the autoconf M4 files and added generation of `./configure` options to `wolfmqtt/options.h`. (PR #71)
  • Improved the message callback to support a custom context per message. (PR #62)
  • Improved the non-blocking unsubscribe handling in mqttclient example for timeout. (PR #65)

wolfMQTT 1.0.0

(04/03/2018)

Version 1.0.0 of wolfMQTT contains bug fixes and new features including:

  • Fixed `MqttClient_WaitMessage` to use provided `timeout_ms` arg. With TLS enabled it was using the `MqttClient_Init` `cmd_timeout_ms` arg. Thanks PeterL for that report.
  • Fixed cast warnings when building with Visual Studio.
  • Cleanup socket code to use existing `SOCK_CLOSE` for `NetDisconnect`.
  • Cleanup to move the `sockRc` into the `MqttTls` struct, since it only applies when TLS is enabled.
  • Added configure option to disable error strings for reduced code size (`./configure disable-errorstrings` or `#define WOLFMQTT_NO_ERROR_STRINGS`).
  • Added support for ChibiOS.

wolfMQTT 0.14.0

(11/22/2017)

Version 0.14.0 of wolfMQTT contains bug fixes and new features including:

  • Fixed non-blocking connect to check for `EINPROGRESS` for all platforms (not just Harmony)
  • Fixed buffer overflow position check on read/write
  • Fixed typo on internal packet function `MqttDecode_ConnectAck`
  • Fixed the socket close for Harmony to use `closesocket`
  • Fixed non-blocking connect where `WOLFMQTT_NO_STDIO` is defined
  • Fixed GCC 7's new fall-through check
  • Added check for EAGAIN in non-blocking mode (was only EWOULDBLOCK)
  • Added non-blocking support for write operations when `WOLFMQTT_NONBLOCK` is defined
  • Added support for DH and setting the default minimum key bits
  • Added support for keep-alive ping when using non-blocking mode
  • Improvements to example TLS callback handling of return code failures
  • Improvements and fixes to Visual Studio projects
  • Enhancement to adjust wolfSSL options.h include based on `WOLFSSL_USER_SETTINGS`.

wolfMQTT 0.13.0

(05/12/2017)

Version 0.13.0 of wolfMQTT contains bug fixes and new features including:

  • Fixed issue with `msg->stat` in non-blocking.
  • Fixed Arduino library build.
  • Fixed examples with non-blocking (--enable-nonblock).
  • Enhancement to pass network callback return codes through context when using TLS.
  • Added option to disable the blocking timeouts for `select()` using `--disable-timeout` (or `WOLFMQTT_NO_TIMEOUT`).
  • Added option to disable STDIN/fgets capture for examples using `--disable-stdincap` (or `WOLFMQTT_NO_STDIN_CAP`)
    Refactor to use new `MQTT_CODE_STDIN_WAKE` return code for examples using STDIN to send publish messages (normal blocking mode only).

wolfMQTT 0.12

(12/20/2016)

Version 0.12 of wolfMQTT contains bug fixes and new features including:

  • Fixes issue with read timeout in non-blocking mode with TLS enabled being teated as socket error.
  • Fixed issue with “msg->stat” not getting reset on failure or timeout.
  • Fix to not link libwolfssl with ./configure --disable-tls.
  • Added AWS IoT Example and test script.

wolfMQTT 0.10

(09/26/2016)

Version 0.10 of wolfMQTT contains bug fixes and new features including:

  • Enabled big endian support.
  • Fixes for building with Visual Studio.

wolfMQTT 0.8

(06/13/2016)

Version 0.8 of wolfMQTT contains bug fixes and new features including:

  • Fixed stdin capture bug and improved signal (ctrl+c) handling.
  • Added Azure IoT hub MQTT client example.
  • Added support for MQX / RTCS.
  • Added "--disable-tls" and "--disable-examples" configure options.
  • Added comment about max packet size.
  • Added example for how to load a client certificate to mqttclient example.
  • Added return code for firmware and azure examples that are not compiled in due to older / incompatible version of wolfSSL.
  • Moved the support for custom printf/line endings into the mqtt_types.h for use throughout the project.
  • Updated README.md with information about the examples.

wolfMQTT 0.6

(03/18/2016)

Version 0.6 of wolfMQTT contains bug fixes and new features including:

  • Fixes to support MinGW compiler.
  • Fixed bug with include of the wolfSSL include of options.h.
  • Fix to properly handle negative return code from wc_SignatureGetSize.
  • Added Arduino IDE example in `IDE/ARDUINO`. See `IDE/ARDUINOREADME.md` for details.
  • Added example UART interface for wolfMQTT. See `examples/mqttuart.c`.
  • Added the ability to pass additional arguments to the scripts. Example: `./scripts/client.test "-h localhost"`

wolfMQTT 0.4

(12/30/2015)

Version 0.4 of wolfMQTT contains bug fixes and new features including:

  • Fixed bug with subscribe not populating acknowledgment return code(s) properly.
  • Fixed build error if using wolfSSL 3.7.1 or older due to missing signature.c/.h wrappers. This fix disables the firmware examples if the wolfSSL version isn't greater than 3.7.1.
  • Fix to ensure `topic_name` pointer is reset when publish callback message is not new `msg_new = 0`.
  • Fixes to suppress possible warning "Value stored to [] is never read".
  • Fixed firmware example to trap case where file isn't found.
  • Fixed possible ./autogen.sh error with missing "config.rpath".
  • Fixed Windows issue with SetConsoleCtrlHandler incorrectly reporting error.
  • Fixed issue with Visual Studio 2015 wolfssl.lib reference.
  • Fixed build errors with G++ (./configure CC=g++).
  • Fixed "FirmwareHeader" to use WOLFMQTT_PACK macro.
  • Added helper macro's and comments for topic names/filters.
  • Added TLS certification verification reference implementation to examples.
  • Updated the topic names in examples to use "wolfMQTT/example/".
  • Added QoS level to example console output.
  • Added memset to initialize some of the example stack variables.
  • Removed the LWT from the firmware examples.
  • Added retain flag "-r" option on the "fwpush" example.
  • Updated the examples to use macros for all memory and string functions, so they are more portable.
  • Added Visual Studio projects for "fwpush" and "fwclient".

wolfMQTT 0.3

(11/18/2015)

Version 0.3 of wolfMQTT contains bug fixes and new features including:

  • Fixes bug with first byte of payload being null'd if QoS level was 0.
  • Fixed issue with stdint types (uint#_t) being used.
  • Fixes for remaining length encoding/decoding for large packets.
  • Added support for large payloads using new message callback flags `msg_done` and `msg_new` along with MqttMessage `buffer_pos` and `buffer_len`.
  • Added example for secure firmware upgrade. Uses the MQTT client library to push a signed payload `fwpush` to a broker, then uses another client `fwclient` to receive the signed payload and verify its signature using a provided public key.

wolfMQTT 0.2

(11/06/2015)

This is the first release of wolfMQTT.

Please see the README included in the wolfMQTT download for build instructions and API reference.