Commits on Jul 10, 2018
  1. Anjay 1.10.2

    sznaider committed Jul 10, 2018
    - Updated AvsComons to version 3.6.2 which includes:
        * a more restrictive approach to symbols from POSIX or C standard library
          that should not be used in embedded environments
        * a fix of compilation on ARMCC
        * a fix of compile time warning on IAR
    - Fixed client behavior when received a 4.03 Forbidden on LwM2M Register
    - Fixed outdated reference to the LwM2M Specification in the documentation
    - Added more tests verifying client behavior in different scenarios
Commits on Jun 29, 2018
  1. Anjay 1.10.1

    dextero committed Jun 29, 2018
    - Updated avs_commons to 3.6.1 - fixes compatibility issues in tests.
Commits on Jun 28, 2018
  1. Anjay 1.10.0

    sznaider committed Jun 28, 2018
    - Updated avs_commons to 3.6.0, which includes:
    	* an abstraction layer over allocator routines, making it possible for the
    	  user to provide custom allocation/deallocation functions to be used by
    	* removal of ``AVS_LIST_CONFIG_ALLOC/FREE`` (they are now replaced with
    	  calls to ``avs_calloc()`` and ``avs_free()`` respectively),
    	* removal of use of all ``time()`` calls,
    	* removal of use of variable length array language feature,
    	* default socket implementation refactor to use a nonblocking socket API,
    	* ``avs_compat_threading`` module, implementing necessary synchronization
    	  primitives used across AvsCommons such as mutexes,
    	* ``avs_cleanup_global_state()`` method, allowing to (optionally) free any
    	  global state implicitly instantiated in AvsCommons,
    	* various compatibility fixes for FreeBSD.
    - Prevented ``anjay_schedule_reconnect()`` from sending Updates when they are
      not necessary,
    - Introduced an API (``anjay_get_socket_entries()``) allowing to obtain different
      kinds of sockets used by Anjay.
    - Removed all uses of ``malloc()/calloc()/realloc()/free()`` in favor of
      AvsCommons' memory layer abstraction,
    - Removed all occurrences of ``time()``,
    - Removed all uses of variable length arrays,
    - Improved non-GNU compilers compatibility,
    - Fixed multiple typos in documentation,
    - Fixed LwM2M-level error reporting for some LwM2M requests with unexpected
      payloads/content-formats (sane error codes are now returned instead of Internal
      Server Error),
    - Various compatibility fixes for FreeBSD.
    - Made bind address family depend on resolved numeric address rather than
      domain name,
    - Fixed project compilation when ``WITH_AVS_PERSISTENCE`` is disabled.
Commits on May 29, 2018
  1. Anjay 1.9.3

    dextero committed May 29, 2018
    - Updated avs_commons to 3.4.3
    - AVS_ASSERT and AVS_UNREACHABLE macros are now used for assertions that
      contain string literals. This prevents some compilers from emitting
      warnings about constant expressions being used in asserts.
Commits on May 28, 2018
  1. Anjay 1.9.2

    sznaider committed May 28, 2018
    - Updated avs_commons to 3.4.2 including various compatibility improvements
    - Added preliminary Windows support
    - Fixed many different casts between incompatible function types found by gcc 8.1
    - Fixed compile errors caused by some (perfectly valid) CMake option configurations
    - Improved documentation of anjay_fw_update_perform_upgrade_t
    - Improved compatibility with compilers without typeof() support
Commits on May 18, 2018
Commits on May 17, 2018
  1. Anjay 1.9.1

    kFYatek committed May 17, 2018
    - Fixed searching for scan-build ("make analyze" target) on Ubuntu 18.04
    - Prevented sending superfluous notifications before cleaning up the library
    Also updates avs_commons to version 3.4.1, which includes the following changes:
    - Fixed bug in avs_http that prevented digest authentication from working
    - Fixed conditional compilation bugs in avs_net that made it impossible to
      disable certain features
    - Fixed bugs in avs_net unit tests that prevented them from passing on systems
      without JDK installed and when ran as root
    - Simplified TLS session persistence logic (removed dependency on mbed TLS
      session cache)
    - Fixed compilation warnings on mbed TLS >= 2.7
    - Worked around false positive warnings from scan-build 6.0
Commits on May 11, 2018
  1. Anjay 1.9.0

    kFYatek committed May 11, 2018
    * anjay_notify_instances_changed() are now automatically called when
      manipulating pre-implemented Security and Server objects via module API
    * (commercial version only) Added support for persistence of server registration
      and notification state, designed for devices with aggressive power saving
    * (commercial version only) Added minimal CoAP file server to the command-line
      test server application
    * BREAKING API CHANGE: Security and Server object implementation modules no
      longer expose the anjay_dm_object_def_t pointer directly.
    * anjay_schedule_reconnect() now also reconnects downloads started using
    * Notifications with non-success message codes are now always sent as
      Confirmable messages to ensure consistency with server-side state
    * Integration tests now can be easily launched under rr for easier debugging
    * Added various informative log messages
    * Moved persistence subsystem to avs_commons and migrated to it
    * Fixed various compilation warnings and compatibility with different compilers
    * Major internal codebase refactoring, including:
      * Saner scheduler function signatures
      * Changed registration expiration time to use realtime clock instead of the
        monotonic one, which improves compatibility with sleep mode scenarios
      * Better hermetization of Observe handling implementation
      * Simplification and better hermetization of server connection handling
      * Reorganization of Registration Interface implementation
    * (commercial version only) More flexible management of commercial features
      during packaging
    Also updates avs_commons to version 3.4.0, which includes the following changes:
    * Moved persistence subsystem from Anjay and improved upon it:
      * Added support for persisting additional integer types
      * Added support for persisting containers with variable size elements
      * Added ability to check the type of persistence context
    * BREAKING API CHANGE: Changed TLS session resumption API so that it is now
      serialized to and deserialized from user-provided buffer
    * BREAKING API CHANGE: Simplified certificate and key configuration API
      * Note that this change dropped support for some libraries that implement
        "fake" OpenSSL API
    * Refactored avs_log() so that compiler will always parse TRACE-level logs, even
      if code generation for them is disabled
    * Fixed various compilation warnings and compatibility with different compilers
    * Fixed warnings when compiling with mbed TLS 2.3 and newer
    * Fixed critical bugs in CoAP option handling:
      * Potential integer overflow
      * Erroneous operation on big-endian machines
    * Added various missing NULL checks
Commits on Mar 15, 2018
Commits on Mar 14, 2018
  1. Anjay 1.8.2

    dextero committed Mar 14, 2018
    - Added X.509 certificate support to pymbedtls Python module.
    - Made `BINDING_MODE_AS_STR` `const`.
    - Changed type of the buffer size argument of
      `anjay_execute_get_arg_value` to unsigned size_t.
    - Added a note on using LwIP socket integration layer to "Porting guide
      for non-POSIX platforms".
    - Added debug logs in instance validators for Security and Server
      LwM2M objects.
    - Added proper notifications for "Last Execute Arguments" resource of
      the Test Object in demo client.
    - Disabled Coverity scan on Travis. This avoids marking the build as
      failing despite all tests passing - Coverity service is "down for
      maintenance" since 2018-02-20, and there seems to be no information on
      when will it be up again.
    - Fixed `anjay_schedule_reconnect` behavior when called after the client
      gives up on reaching a LwM2M server. Previously, only a single
      reconnection attempt was attempted in such case, regardless of the
      `max_icmp_failures` configuration option.
    - Fixed compilation errors on compilers that do not support typeof.
Commits on Feb 28, 2018
  1. Anjay 1.8.1

    sznaider committed Feb 28, 2018
    - Fixed infinite loop of Register retransmissions when LwM2M Server ignores
      Updates and Client attempts to re-register
    - Fixed nested links in
Commits on Feb 21, 2018
  1. Anjay 1.8.0

    kFYatek committed Feb 21, 2018
    - Added get_security_info() handler to fw_update module, enabling
      configuration of security information for PULL-mode downloads over
      encrypted channels
    - Added anjay_fw_update_load_security_from_dm() which allows to match
      security information from the Security object based on URI
    - fw_update module will no longer connect to any HTTPS or CoAPS URI
      without authentication
Commits on Feb 16, 2018
  1. Anjay 1.7.3

    kFYatek committed Feb 16, 2018
    - anjay_codegen is now able to generate C++ code
    - Updated timeouts in integration tests which should improve test result
    - Added log when security mode does not match server URI
Commits on Feb 12, 2018
  1. Anjay 1.7.2

    sznaider committed Feb 12, 2018
    - Fix anjay_all_connections_failed(). It is no longer returning true if no
      LwM2M Servers are configured.
  2. Anjay 1.7.1

    dextero committed Feb 12, 2018
    - Skip retransmission loop in case of DTLS handshake timeout. DTLS
      packet retransmissions are handled within avs_net_socket_connect
      anyway, so there is no point in applying yet another exponential
      backoff loop.
  3. Anjay 1.7.0

    sznaider committed Feb 12, 2018
    Breaking changes:
    - Reverted anjay_server_unreachable_handler_t as it has been found that
      using the handler correctly is close to being impossible.
    - Anjay no longer attempts to reach LwM2M Servers indefinitely. Maximum number
      of retries is now configured via anjay_configuration_t::max_icmp_failures,
      and by default is set to 7.
    - Introduced anjay_all_connections_failed() method, allowing the user
      to check if Anjay already gave up on trying to reach LwM2M Servers.
    - Downgrade log level in _anjay_dm_foreach_instance() to TRACE.
Commits on Jan 31, 2018
  1. Updated avs_commons

    kFYatek committed Jan 31, 2018
Commits on Jan 29, 2018
  1. Anjay 1.6.1

    sznaider committed Jan 29, 2018
    - Added anjay_server_unreachable_handler_t, that may be implemented by the
      user to control behavior of Anjay when it failed to connect to the LwM2M
    - Added new demo command line option "--server-unreachable-action" to
      be able to present the aforementioned handler in action
    - Added new demo command "enable-server" to enable Server of specified
    - Added anjay_disable_server_with_timeout()
    - Improved compatibility with CMake 2.8.12
    - Fixed Update interval: when lifetime is larger than 2*MAX_TRANSMIT_WAIT,
      Update is now sent at lifetime-MAX_TRANSMIT_WAIT instead of lifetime/2
    - Fixed demo command line parsing functions
    - Fixed Travis problems and configuration on CentOS
Commits on Jan 15, 2018
  1. Merge pull request #13 from AVSystem/travis-debug

    sznaider committed Jan 15, 2018
    Fixed Travis problems and configuration
Commits on Jan 11, 2018
  1. Fixed Travis problems and configuration

    kFYatek committed Jan 11, 2018
Commits on Jan 8, 2018
  1. Anjay 1.6.0

    kFYatek committed Jan 8, 2018
    Breaking changes:
    - Replaced time_t with int32_t for period Attributes; fixes compatibility with
      platforms that have unsigned time_t
    - Removed useless symlinks that caused problems on Windows
    - Fixed usage of errno constants that are defined by avs_commons compatibility
      layer; fixes compatibility with platforms that don't declare sane errno
    - Improved compatibility with CMake 2.8 and CentOS
    - anjay_persistence_time() is now deprecated
Commits on Dec 11, 2017
  1. Anjay 1.5.2

    kFYatek committed Dec 11, 2017
    - Fixed flow of flushing unsent notifications
    - Bug fixes in avs_commons, including:
      - Fixed undefined behavior in CoAP message cache
      - Fixed compatibility with compilers that don't support either stdatomic.h or
        GCC-style __sync_* builtins
      - Prevented CoAP back-off timer randomization from occasionally using negative
      - Fixed minor error handling problems
      - Fixed link commands for TinyDTLS interoperability
    - Added WITH_TEST CMake flag
    - Improved compatibility with BSD operating systems
    - Improvements in avs_commons, including:
      - Fixed interoperability with HTTP servers that unexpectedly close connection
Commits on Nov 27, 2017
  1. Anjay 1.5.1

    sznaider committed Nov 27, 2017
    - Support HTTP download resumption
    - Fix some race conditions in integration tests that revealed themselves
      on slow machines
    - Fix anjay_download() retrying download forever even in case of terminal
    - Fix Firmware Update resetting by a null-byte Write
    - Stop scheduling useless LwM2M Updates to the Bootstrap Server
    - Test Firmware Update "not enough storage" scenario over CoAP
    - Test Firmware Update "connection lost during download" scenario over CoAP
Commits on Nov 20, 2017
  1. Anjay 1.5.0

    sznaider committed Nov 20, 2017
    - Extracted Firmware Update logic to a separate module so that the end user
      have to implement device-specific firmware updating logic only
    - Implemented API for firmware update resumption
    - Implemented stub of the portfolio object (in demo client) required for the
      OMA TestFest 2017
    - Added support for DTLS session resumption as well as register-after-reconnect
    - Added object versioning support
    - Added support for LwM2M Server URIs with Uri-Path and Uri-Query
    - Fixed travis builds on macOS
    - Fixed a few misleading statements in the documentation
    - Fixed handling of Multiple Instance Resources
    - Fixed Content-Format for responses on Bootstrap Discover request
    - Fixed Write (replace) on Device object instance in demo client
    - Added more tests covering OMA TestFest 2017 test cases
    - Allowed configuring Security/Server IIDs from command line in demo
    - Allowed Bootstrap Delete on "/"
    - Added support for re-bootstrapping after failed registrations
    - Added anjay_server/security_object_is_modified simiar to
    - Updated porting guide
    - Replaced Internal Server Error responses with more specific error
      codes in a few places
    - Relaxed validator of Update location path, due to specification being
      unclear (see: OpenMobileAlliance/OMA_LwM2M_for_Developers#230)
Commits on Oct 18, 2017
Commits on Oct 16, 2017
  1. Anjay 1.4.1

    sznaider committed Oct 16, 2017
    - Added CMake option `WITH_STATIC_DEPS_LINKED` that forces direct linkage of
      the library dependencies into the final target library
    - Migrated to a new time API implemented in avs_commons
    - Removed dependency on wget completely and used built-in downloader instead
    - Fixed symbol visibility checks
    - Renamed a few files to improve compatibility with various IDEs that do not
      handle files with non-unique naming across the entire project
    - Lowered severity of some log messages that were actually not that critical
    - Published example output from script in the documentation
Commits on Sep 8, 2017
  1. Anjay 1.4.0

    kFYatek committed Sep 8, 2017
    - New tools: and, that allow automatic
      generation of object implementation stubs from LwM2M object definition XMLs
    - anjay_download() now supports HTTP(S), using the client from avs_commons
    - New APIs for querying Anjay's network traffic statistics
    - New APIs in attr_storage for direct attribute manipulation:
      - anjay_attr_storage_set_object_attrs()
      - anjay_attr_storage_set_instance_attrs()
      - anjay_attr_storage_set_resource_attrs()
    - CoAP implementation base has been refactored and moved to avs_commons, so that
      it can now be used standalone; Anjay code has been refactored accordingly
    - Fixed a bug that prevented anjay_get_string() from working as documented when
      the buffer was too short
    - Fixed conformance with RFC 7252 when sending error responses on observed
      resources (previously the Observe header was erroneously included)
    - Fixed various minor bugs found through static code analysis and compilation on
      various platforms
    - POSIX dependencies are now better isolated to ease porting onto non-POSIX
    - Added more documentation, including:
      - New tutorial page (BT4) with general notes on library usage
      - Porting guide for non-POSIX platforms
    - Removed some superfluous log messages
Commits on Jul 27, 2017
  1. Anjay 1.3.3

    dextero committed Jul 27, 2017
    - Implemented anjay_download() API for asynchronous CoAP(S) downloads
    - Added anjay_download example code
    - Added support for CoAP firmware download in demo application
    - Fixed Register/Update transport when changing Binding
    - Fixed lt/gt/st semantics according to
    - Fixed handling of unrelated BLOCK2 requests during a block-wise Read
    - Disallowed Write-Attributes requests if the server does not have Read
      access rights
    - Fixed build instructions for OS X in README
    - Added packet capture in Python tests
    - Added compilation instructions for Android
    - Made missing scan-build a fatal error if static analysis was enabled
      with a CMake flag
    - Integrated Coverity scan with Travis build
    - Allowed configuration of CoAP transmission parameters in anjay_new()
Commits on Jul 13, 2017
  1. Anjay 1.3.2

    sznaider committed Jul 13, 2017
    - Added custom Attribute "con" that may be used to enforce sending Confirmable
      Notifications for observed entities.
    - Added new chapter of the Tutorial about Executable Resources.
    - Added documentation subsection about relation LwM2M Discover and Attribute
    - Removed dependency to Boost.Python in tests, and migrated to pybind11
      instead (included as a submodule).
    - Implemented sending Update after Lifetime Resource has changed
    - Implemented proper Bootstrap Server Account purge logic
    - Improved handling of CoAP Ping messages - they no longer produce error messages
      in the logs.
    - Documented ANJAY_ERR_* constants.
    - Added more NULL-assertions in the example demo client.
    - Enabled scan-build in make check by default.
    - Bumped all copyright years.
    - Fixed dead URLs in the documentation.
    - Fixed segfault when Bootstrap Discover was performed on a non-existing Object.
    - Fixed various minor issues found by the static analysis tools.
    - Fixed various compilation issues when compiled on older Android platforms.
Commits on Jun 22, 2017
  1. Anjay 1.3.1

    dextero committed Jun 22, 2017
    - Added `confirmable_notifications` field to `anjay_configuration_t`,
      enabling the client to only send LwM2M Notify as CoAP Confirmable
    - Added retransmission detection using message cache with fixed size,
      configurable at library initialization.
    - Added Custom Object/Notifications tutorial with example client.
    - Added documentation page explaining message cache purpose and usage.
    - Added support for Write on Instance with superfluous TLV instance
      header. Anjay used to reject such requests as malformed.
    - Implemented ETS test 204 (Read with Accept: JSON).
    - Made attribute parsing stricter. Unknown or duplicate attributes now
      cause Bad Request responses
    - Splitted `anjay.h` header into smaller ones. Note: `anjay.h` now includes
      all other headers, so no changes to user code are required.
    - Fixed problem with duplicate request aborting block-wise Read responses.
    - Prevented tests from failing if Sphinx is not installed.
    - Fixed ConnectivityMonitoring.APN type to Multiple Resource. Fixes issue #10.
    - Fixed semantics of `lt` and `gt` attributes to match
      draft-ietf-core-dynlink document.
    - Fixed build issue when configuring build with -DWITH_BOOTSTRAP=OFF CMake
    - Fixed compilation warnings in relase builds.
Commits on May 26, 2017
  1. Anjay 1.3.0

    kFYatek committed May 26, 2017
    * Added initial output-only support for JSON Content-Format
    * Added support for SMS-related Resources in security module
    * Refactored code to facilitate support for SMS Binding
      * Actual SMS Binding support now implemented in the commercial version
    * BREAKING API CHANGE: Replaced rid_bound and resource_supported handler with statically declared list of supported resources
    * Improved handling of DTLS backends in build system
    * 5.03 Service Unavailable is now sent instead of Reset when an unexpected request arrives while waiting for a response to Register or Update
    * Improvements in demo client:
      * Fixed Firmware Update object state machine
      * Added default Access Control entries
    * Fixed sending errnoeus 2.31 Continue if the last block payload chunk trigerred an error
    * Relaxed invariants for Client-Initiated Bootstrap as per OpenMobileAlliance/OMA_LwM2M_for_Developers#164
    * Prevented sending Object Instance list in Update messages if only changes are in the Security object
    * Fixed various bugs in access_control module
    * Fixed in-code version numbers
Commits on Apr 26, 2017
  1. Merge pull request #9 from Kylo/master

    kFYatek committed Apr 26, 2017
    Fixed wording and grammar errors in Documentation.
Commits on Apr 25, 2017