Please sign in to comment.
This release synchronizes the open-source version of Anjay with the commercial branch, that has been in development since September 2018. Note that the commercial version includes extensive support for LwM2M TS 1.1 features. These are not available in the open-source version and not described in this changelog. BREAKING CHANGES: - Redesigned data model APIs - Replaced instance_it and instance_present handlers with list_instances - Simplified the instance_create API - IIDs for Create are always assigned by Anjay - user code no longer needs to allocate IDs - Removed the SSID argument - Replaced supported_rids field, resource_present, resource_it and resource_operations handlers with list_resources - Redesigned handling of Multiple-Instance Resources: - Old APIs for resource arrays are no longer available - Read and write handlers now take additional Resource Instance ID argument - Removed resource_dim handler - Introduced new resource_reset and list_resource_instances handlers - Renamed various types, in particular those related to LwM2M Attributes - Disallowed 65535 for all levels of IDs, as mandated in LwM2M TS 1.1 - Changed custom objects in demo client to use Object IDs from the range of Bulk Objects Reserved by AVSystem - Additional minor changes to the Test object semantics - It is now not possible to build both static and shared versions of Anjay as part of the same build - Heavily refactored error handling; some public APIs may require use of avs_error_t instead of plain integer error codes - Removed stubs of commercial-only APIs from the open source version Features: - Entirely rewritten CoAP implementation - Register, Update, Request Bootstrap and confirmable Notify messages are now sent asynchronously and do not block other functionality - Notifications in JSON format now include timestamps - Added setting to prefer hierarchical Content-Format even when reading simple resources, to improve interoperability with certain server implementations - Added support for DTLS Connection ID extension if using a development version of mbed TLS that supports it - Added ability to configure (D)TLS ciphersuites - Added support for epmin and epmax attributes, specified in LwM2M TS 1.1 - Moved most of the Access Control mechanism logic from the access_control module (i.e., object implementation) to Anjay core - Changed anjay_execute_get_*() error codes to ANJAY_ERR constants so that they can be safely propagated by DM handler callbacks - Added generating notifications when Access Control object changes - New revision of persistent format of the Server object implementation, with redesigned handling of Binding resource - Improvements to demo client: - Notifications in Device object now work properly in the demo client - Demo client now supports different binding modes for different servers - Support for more resources in the Cellular Connectivity object - Support for Event Log object - Support for BinaryAppDataContainer object - Added script and build target for finding unused code Improvements: - Improvements to logging: - Made it easier to compile Anjay without any logs - Made some log messages more descriptive - Tweaked log levels for better manageability - More robust downloader module, including improvements to HTTP ETag handling - Allowed Accept option in all incoming requests, for better interoperability with certain server implementations - Removed internal scheduler implementation, migrated to avs_sched from avs_commons - Made use of stack-allocated avs_persistence contexts - Refactored handling of server connections and data in Security and Server objects to be more in line with OMA guidelines - Refactored CMake scripts to make use of CMake 3 features - Extracted parts of dm_core.c to separate files - Improvements to internal symbol naming scheme - Simplified a lot of internal APIs, including I/O contexts and DM path handling - Various cleanups and improvements of Python-based integration test code Bugfixes: - Added missing protocol version in responses to Bootstrap Discover on an object path - Various minor bugfixes Also updates avs_commons to version 4.0.0, which includes the following changes: Breaking changes: - Removed ignoring context feature from avs_persistence - Refactored error handling, introducing the new avs_error_t concept - Renamed avs_stream_abstract_t to avs_stream_t - Renamed avs_net_abstract_socket_t to avs_net_socket_t Features: - avs_net - Added support for Server Name Identification (D)TLS extension when using OpenSSL, and ability to enable or disable it explicitly - Added support for DTLS Connection ID extension if using a development version of mbed TLS that supports it - Added possibility to use custom mbed TLS entropy pool configuration - Added ability to configure (D)TLS ciphersuites - Added propagation of (D)TLS handshake alert codes to user code - Implemented accept() call for UDP sockets - Added avs_url_parse_lenient function and separate validation functions - avs_stream - Added avs_stream_membuf_take_ownership function - Added avs_stream_membuf_reserve function - avs_utils - Added avs_unhexlify function - avs_algorithm - Refactored base64 to support alternate alphabets and padding settings - avs_unit - Added support for and_then callbacks in mock sockets Improvements: - Made logs render "..." at the end if truncated - Improved compatibility with various platforms, including Zephyr - Improved structure of CMake stage configuration, removed unused definitions - Reformatted entire codebase Bugfixes: - Added extern "C" clauses missing in some files, added regression testing for that, fixed some other C++ incompatibilities - Fixed some improperly propagated error cases in HTTP client - Fixed problems with avs_net sockets not working for localhost if no non-loopback network interfaces are available - Fixed some potential NULL dereferences, assertion errors and various other fixes
- Loading branch information
|@@ -1,6 +1,7 @@|
|path = avs_commons/git|
|url = https://github.com/AVSystem/avs_commons.git|
|path = deps/avs_commons|
|url = https://github.com/AVSystem/avs_commons|
|path = test/integration/framework/nsh-lwm2m/pymbedtls/src/pybind11|
|url = https://github.com/pybind/pybind11.git|
|ignore = untracked|
Oops, something went wrong.