Skip to content

Tags: AVSystem/Anjay

Tags

3.8.0

Toggle 3.8.0's commit message
Anjay 3.8.0

BREAKING CHANGES:
- Timeout in case of sending a Confirmable Notification does not cancel the
  observation anymore by default.

Features:
- Added a ``connection_error_is_registration_failure`` configuration option that
  allows handling connection errors as Register failures, including the
  automatic retry mechanism
- Added experimental server connection status API.

Improvements:
- (commercial version only) Changed MSISDN matching method in SMS binding
  feature to allow handling messages with Short Codes as originating number

Bugfixes:
- Fixed a corner case in which a connection error during a non-first Register
  attempt could cause uncontrolled infinite retries
- Fixed a bug in demo of Advanced Firmware Update module that prevented
  proper handling of security config for targets other than APP
- Fixed a bug that caused anjay_next_planned_notify_trigger family APIs to
  return an invalid value after canceling observations

4.0.0-alpha.2

Toggle 4.0.0-alpha.2's commit message
Anjay 4.0.0-alpha.2

3.7.0

Toggle 3.7.0's commit message
Anjay 3.7.0

Features
- Added support for LwM2M 1.2 server object requirement for infinite lifetime
  (lifetime == 0).
- Introduced @experimental and @deprecated Doxygen tags.
- Added experimental IPSO objects v2 API.
- Added experimental Software Management object API.

Improvements
- Improved integration tests compability and framework stability
- Added support for wget2 for validating links in documentation (for HTTP/2
  support)

Bugfixes
- Refactored generation of blockwise Confirmable notifications to avoid a
  possible assertion failure; requests for subsequent blocks of such
  notifications are now sent as Piggybacked responses
- Fixed a bug in the documentation of an object definition struct
- (commercial version only) Fixed problems with running some tests on systems
  with Mbed TLS 3.x
- Fixed a few assertion and pointer punning issues regarding calls to IPSO
  objects APIs in erroneous cases
- Prevent from trying to store empty cert/keys on HSM

4.0.0-alpha.1

Toggle 4.0.0-alpha.1's commit message
Anjay 4.0.0-alpha.1

Initial release of Anjay 4 Alpha.

3.6.1

Toggle 3.6.1's commit message
Anjay 3.6.1

Improvements:
- Optimized heap memory usage: SenML CBOR payloads for Send and Notify
  operations are no longer serialized in memory in their entirety unless their
  contents depend on the Access Control object state
- Added a public define for MSISDN string size
- Optimized "Out of memory" logs in favor of a smaller flash memory footprint

 Bugfixes:
- (commercial feature only) Fixes for various bugs that could cause invalid
  memory accesses when restoring data from corrupted core persistence data

3.6.0

Toggle 3.6.0's commit message
Anjay 3.6.0

3.5.0

Toggle 3.5.0's commit message
Anjay 3.5.0

BREAKING CHANGES
- Reversed the order of calling the ``delivery_handler`` callback vs. canceling
  the observation when sending notifications with 4.xx or 5.xx code; this change
  is breaking only for direct users of ``avs_coap`` API

Features
- Added APIs for suspending and resuming standalone downloads as well as
  Firmware Update and Advanced Firmware Update PULL-mode downloads
- Added standalone versions of the Security and Server object implementations,
  that can be customized by the end users
- Added definitions for common Core Object IDs in the public API
- Removed potentially faulty assertion in code generated by anjay_codegen.py
- (commercial feature only) added ``anjay_sim_bootstrap_calculate_md5()``
  function that allows verification whether SIM Bootstrap data has been changed
  (e.g. as a result of SIM OTA)

Improvements
- Rewritten Send-based reporting in Advanced Firmware Update in such a way that
  it will now work with custom implementations of the Server object
- Simplified the CoAP downloader implementation so that the
  ``get_remote_hostname`` socket operation is no longer necessary for download
  resumption
- Made handling of initial peer CSM messages in CoAP+TCP asynchronous
- Updated the documentation with more descriptive warnings about functions that
  require extra care to maintain thread safety
- Removed ``const`` qualifier from ``MAKE_URI_PATH()`` compound literal which
  triggers a plausible compiler bug on IAR EWARM v9.30

Bugfixes
- Fixed a critical bug that caused Anjay to crash when sending notifications
  with 4.xx or 5.xx code over TCP
- Fixed a regression introduced in 2.13.0 that prevented the Firmware Update
  and Advanced Firmware Update from compiling without the
  ``ANJAY_WITH_DOWNLOADER`` configuration option enabled
- Fixed a condition where the Register or Update messages could be erroneously
  regenerated when refreshing server connections while already performing a
  Register or Update request
- Fixed a condition where the connection could be erroneously retried
  automatically when a fatal failure was expected
- Decoupled the ``WITH_AVS_COAP_TCP`` and ``ANJAY_WITH_LWM2M11`` configuration
  options so that they can be set independently as intended
- Fixed the ``devconfig`` script and Github Actions configuration for better
  compatibility with building on macOS
- Refactored TCP binding handling in integration tests for more reliability
- Fixed the case where CoAP+TCP Abort message could erroneously be sent multiple
  times
- Loosened some time constraints in Advanced Firmware Update tests
- Fixed supplemental iid sort in Advanced Firmware Update
- Fixed too early restart while performing an upgrade using Advanced Firmware
  Update module in Anjay demo app
- Fixed too early persistence write while performing an upgrade using Advanced
  Firmware Update module in Anjay demo app

3.4.1

Toggle 3.4.1's commit message
Anjay 3.4.1

Features

- (commercial feature only) New ``sim_bootstrap`` module that implements the
  logic necessary to extract the EF(DODF-bootstrap) file contents from a smart
  card

Bugfixes

- Fixed a potential crash in case of a specific out-of-memory condition in
  Advanced Firmware Update
- Fixed `anjay_config_log.h` so that all non-binary configuration options are
  properly logged
- Fixed a regression from 3.4.0 that prevented ``nsh_lwm2m.py`` from launching

3.4.0

Toggle 3.4.0's commit message
Anjay 3.4.0

Features

- New APIs for server connection lifecycle management:
anjay_server_schedule_reconnect() and anjay_schedule_register()
- New options in anjay_configuration_t that allow for optional more strict
LwM2M TS compliance: update_immediately_on_dm_change and
enable_self_notify
- Added option to disable auto-closing of the socket when in queue mode.
- avs_coap_observe_cancel() is now public API (for direct users of avs_coap)
- Added Advanced Firmware Update as an Anjay module
- Added simplified demo of Advanced Firmware Update with two firmware images
- Added tutorial for Advanced Firmware Update

Improvements

- Observations are now automatically cancelled if the client needs to send a new
Register messsage
- Added explicit casts in macros that involve negating an unsigned value, to
silence warnings generated by some compilers
- Various improvements and refactors of integration tests, to make them run
faster and more stable
- (commercial feature only) Disabled servers are saved now in Core Persistence,
which prevents them from registering until the timeout passes with respect to
the real clock.

Bugfixes

- Fixed handling of SenML payload that could cause erroneous behavior and memory
leaks when parsing payloads only containing the Base Name field, without Name
- Fixed error handling in bootstrapper (commercial only) and factory
provisioning modules so that the changes are properly rolled back in case of
error
- Fixed assertion error (or 4.05 Method Not Allowed when compiled without
assertions) when attempting to set the Disable Timeout resource in the Server
object when the ANJAY_WITHOUT_DEREGISTER configuration option is set
- Fixed inequality comparisons on some time values that could cause erroneous
behavior on platforms with low-resolution system clocks, and updated unit
tests to not assume a high-resolution clock
- Fixed a problem where anjay_ongoing_registration_exists() inconditionally
returned true if any server connection in a "disabled" state existed
- Timeout when sending a Confirmable Notification now cancels the observation,
as required by RFC 7641
- Removed sending of Release messages when using CoAP+TCP, which fixes the issue
of erroneously sending them at the beginning after reconnecting a LwM2M
connection socket
- Fixed the serial port handling code in the sample NIDD driver, to properly
handle cases where more than one line is received in a single read() call
- Fixed compatibility of integration tests with the current versions of the
Python cryptography module
- Fixed problems with compiling the library without WITH_AVS_COAP_BLOCK
enabled (contributed by Flonidan A/S)
- Fixed a bug in the pymbedtls library used by tests, that prevented it from
working in DTLS client mode
- Fixed bug in the "Custom (D)TLS layers" code examples

3.3.1

Toggle 3.3.1's commit message
Anjay 3.3.1

Improvements
- `anjay_disable_server()` and `anjay_disable_server_with_timeout()` can now be
  be called on servers that are not enabled as well

Bugfixes
- Fixed resetting of counter for the Communication Sequence Retry Count resource
- Fixed a regression in 3.2.0 that prevented the bootstrap connection to be
  properly closed if the Bootstrap Server is reconfigured in the new bootstrap
  information and legacy Server-Initiated Bootstrap is disabled