Releases: AVSystem/Anjay
Releases · AVSystem/Anjay
Anjay 3.11.0
BREAKING CHANGES
- Default value of maximal holdoff time during Bootstrap limited from 120 sec.
to 20 sec. The limit can still be changed using ANJAY_MAX_HOLDOFF_TIME define. - If the Server certificate is missing from the Data Model, Anjay falls back to
PKIX verification, provided that a Trust Store is available, even when the
certificate usage is set to DANE-TA or DANE-EE. - avs_commons 5.5.0 that is used by Anjay 3.11.0 stoped passing the trust store
to Mbed TLS backend for Certificate Usage 2 or 3. For details on how Anjay
handles Certificate Usage resource refer to
Anjay Specification -> Advanced Topics -> Certificate Usage.
Bugfixes
- Updated avs_commons to a version without a PSK-mode vulnerability in the Mbed
TLS backend where a client configured for PSK could connect to a server that
did not know the PSK, due to advertising non-PSK key exchange and skipping
certificate verification. This issue affected only TLS 1.3 connections with
Mbed TLS versions ≥ 3.6.1.
For details, see: https://github.com/AVSystem/avs_commons/releases/tag/5.5.0
Features
- (commercial version only) Added support for configuring OSCORE Object for each
Security Object in Anjay Demo.
Anjay 3.10.0
Features
- Instruction how to generate packages for Anjay Demo was added to documentation.
- Dropped support for Ubuntu 18.04 and removed tests for it.
Bugfixes
- Fixed
devconfigscript which was incorrectly setting Anjay version in logs
to "unknown". - Added canceling the Register or Update message exchange if it's in progress
when Server Disable (with resource execution or by API) is called that could
have led to disabling the server infinitely.
Improvements
- Unified script for generating packages in integration tests, now it can also
be used to generate packages for the Software Management object. - The format of the metadata for packages used in integration tests and the
demo has been revised to be more unambiguous and unified. - Added
confirmable_notification_status_cbhandler that is called if
acknowledgement for confirmable notification is received from the Server or
some error has occurred.
Anjay 3.9.0
Features
- LwM2M Gateway functionality was added. To see the feature description, API
documentation and tutorial on its usage, see Anjay docs - Added a
coap_downloader_retry_countandcoap_downloader_retry_delay
configuration options that allow to resume the CoAP download process in case
of network errors.
Improvements
- Extended the functionality of the flag enabling Connection ID to also include
connections to the file download CoAP server, in addition to the LwM2M server - Migrated GitHub Actions tests on macOS to the macos-14 runner.
- Refactored test_ghactions.py.
- Added Github Actions test on macOS for the AppleClang.
Bugfixes
- Ensured that Github Actions tests on macOS actually runs on LLVM installed
from Homebrew instead of AppleClang. - Minor fix in the devconfig.
Anjay 3.8.1
Improvements
- Improved the coverage script and switched to lcov.
- In case when the LwM2M server answers with an RST message to a notification
that is yielding an error value (e.g. failure to read), which effectively
cancels the notification, Anjay is not infinitely trying to transmit that
message with error value once again. New behavior is enabled by default, and
controlled withWITH_AVS_COAP_OBSERVE_FORCE_CANCEL_ON_UNACKED_ERRORoption
ofavs_coap. Existing projects have to opt-in explicitly. - Added
--nobestflag todnf updatein Rockylinux image preparation for
tests to solve installation candidates conflicts.
Bugfixes
- Actually fixed compatibility with Mbed TLS 3.6.
- Fixed compatibility of integration test framework with Mbed TLS versions that
enabled TLS 1.3, but didn't useMBEDTLS_USE_PSA_CRYPTO. - The -Wformat warning appearing in some compilers has been fixed.
- Fixed LwM2M CBOR parser incorrectly accepting inputs containing empty arrays
as keys - Prevent from generating non unique session tokens when the monotonic system
clock granulation is not fine enough. - Refactored how timeouts are handled in pymbedtls to be in line with use of
mbedTLS in avs_commons.
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_failureconfiguration 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
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
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
Anjay 3.6.0
Features
- Added APIs for setting custom timeouts for downloads performed over CoAP+TCP and HTTP, including firmware update downloads
- Added
requirements.txtfile to manage Python dependencies more efficiently
Improvements
- Clarified documentation on behavior of Firmware Update and Advanced Firmware Update modules when
anjay_fw_update_get_security_config_tandanjay_advanced_fw_update_perform_upgrade_tcallbacks, respectively, are not defined. - Added compilation flag that disables all composite operations
Bugfixes
- Updated integration tests so that they pass on macOS
- Fix abort scenario in Advanced Firmware Update module
Anjay 3.5.0
BREAKING CHANGES
- Reversed the order of calling the
delivery_handlercallback vs. canceling
the observation when sending notifications with 4.xx or 5.xx code; this change
is breaking only for direct users ofavs_coapAPI
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_hostnamesocket 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
constqualifier fromMAKE_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_DOWNLOADERconfiguration 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_TCPandANJAY_WITH_LWM2M11configuration
options so that they can be set independently as intended - Fixed the
devconfigscript 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
Anjay 3.4.1
Features
- (commercial feature only) New
sim_bootstrapmodule 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.hso that all non-binary configuration options are properly logged - Fixed a regression from 3.4.0 that prevented
nsh_lwm2m.pyfrom launching