Skip to content

Commit

Permalink
Merge pull request #118 from dgarske/rel_v1.3
Browse files Browse the repository at this point in the history
wolfMQTT release v1.3 preparation
  • Loading branch information
embhorn authored Aug 1, 2019
2 parents bfd1349 + 226a687 commit 4561ea3
Show file tree
Hide file tree
Showing 5 changed files with 182 additions and 166 deletions.
176 changes: 176 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@

## Release Notes

### v1.3 (08/01/19)

* Fix `fwpush` example to use filename option `-f`. (PR #117)
* Added multiple thread support using `--enable-mt` or `WOLFMQTT_MULTITHREAD`. (PR #115)
* Fix for `MQTT_DATA_TYPE_BINARY` data length encoded twice. (PR #112)
* Fix to clear local structures for subscribe and unsubscribe ACK's. (PR #112)
* Fix for `SN_Encode_Unsubscribe` using wrong data type for topic name ID. (PR #110)
* Add `WOLFSSL_USER_SETTINGS` to VS project files. (PR #109)
* Fixes for using RTCS in `mqttnet.c` socket example code. (PR #108)
* Fix MQTT-SN decode publish parsing and QoS2 response. (PR #107)
* Make MqttSocket_TlsSocket callbacks public. (PR #104)
* Improved the disconnect network error callback example. (PR #102)
* Add MQTT context information to socket callback examples. (PR #101)
* Initialize subscribe state to `MQTT_MSG_BEGIN`. (PR #99)
* Fix for Harmony possible circular include issue. (PR #98)

### v1.2 (11/07/18)

* Added MQTT Sensor Network (SN) client support (`--enable-sn` or `WOLFMQTT_SN`). (PR #96)
* Added MQTT v5.0 support with (`--enable-mqtt5` or `WOLFMQTT_V5`). (PR #87)
* Added property callback support (MQTT v5.0 only). Enabled with `--enable-propcb` or `WOLFMQTT_PROPERTY_CB`). (PR #87)
* Fix for Harmony NetConnect function incorrectly checking `EWOULDBLOCK`. Fixes issue #88. (PR #89)
* Fix to reset the TLS ctx and ssl pointers when they have been free'd. (PR #85)
* Add way to pass custom context to the wolfMQTT TLS verify callback example `mqtt_tls_verify_cb`. PR #94)
* Create nonblocking mqttclient example `./examples/nbclient/nbclient`. (PR #93)
* Add support for publishing in smaller chunks using new API `MqttClient_Publish_ex`. (PR #92)
* Added simplified Microchip Harmony wolfMQTT network callback example. (PR #83)

### v1.1 (06/21/18)
* 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)

### v1.0 (04/03/18)
* 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.

### v0.14 (11/22/17)
* 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`.

### v0.13 (05/10/17)
* 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).

### v0.12 (12/20/16)
* 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.

### v0.11 (11/28/16)
* Fix for building MQTT client example without the wolfSSL headers present.
* Fix for Microchip Harmony IP check so it works with non 192 subnets.

### v0.10 (09/26/16)
* Enabled big endian support.
* Fixes for building with Visual Studio.

### v0.9 (08/22/16)
* Added Microchip Harmony support (see new readme in `IDE/Microchip-Harmony/README.md`).
* Added non-blocking mode `--enable-nonblock` or `WOLFMQTT_NONBLOCK`, which uses new `MQTT_CODE_CONTINUE` response code.
* Added `scripts/azureiothub.test`.
* Added `./commit-tests.sh` for testing all configurations.
* Added git pre-commit hook to run `commit-tests.sh`.
* Combined duplicate code in the examples into `examples/mqttexample.c`.
* Examples now use `MQTTCtx` structure as argument for tracking info/state.

### v0.8 (06/13/16)
* 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.

### v0.6 (03/18/2016)
* 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"`

### v0.5 (01/27/2016)
* Fixed build error when using older wolfSSL in firmware examples.
* Updated the get error string function in `mqtt_socket.c` from `wc_GetErrorString` to `wolfSSL_ERR_reason_error_string` so both wolfSSL and wolfCrypt error codes are resolved.
* Added `-n <str>` option so a custom topic name can be used.
* The mqttclient example now listens to stdin and will send a publish message with the data entered on the console when end-of-line (return) is detected (Linux only).
* Added keep-alive ping to the mqttclient and fwclient examples.
* Moved the TLS callback prior to the `client->tls.ctx` creation, allowing the callback function to implement its own client method cert verification.
* Enhanced `MqttClient_WaitMessage` so it will return if we get a message, not just on timeout
* Added make check/test scripts (scripts/client.test and scripts/firmware.test) to validate client TLS (with and without) plus QoS 0-2 levels and the firmware update example.
* Adjusted the example include paths for more flexibility.
* Added new `-T` option for using examples to test.
* Added new `-C` option to allow custom command timeout.
* Combined duplicate example code into new header `mqttexample.h`.
* Added a PRINTF helper macro to the examples for easier porting.
* Added better error trapping in examples so return code is populated for testing.
* Changed the example test functions to return int.

### v0.4 (12/30/2015)
* 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".

### v0.3 (11/18/2015)
* 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.

### v0.2 (11/06/2015)
* Fixes to handle receival of publish and QoS messages while performing packet writes/waits.
* Added support / tested with Windows.
* Added Visual Studio 2015 solution and projects.
* Added support / tested with FreeRTOS and Lwip.
* Fixes for compiler warnings.

### v0.1 (10/26/15)
* Initial release with support for MQTT v3.1.1, QoS 0-2, TLS and example client.
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ include scripts/include.am
include IDE/include.am

EXTRA_DIST+= README.md
EXTRA_DIST+= ChangeLog.md
EXTRA_DIST+= LICENSE
EXTRA_DIST+= wolfmqtt.sln
EXTRA_DIST+= wolfmqtt.vcxproj
Expand Down
Loading

0 comments on commit 4561ea3

Please sign in to comment.