• Jul 10, 2018


    Anjay 1.10.2
    - 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
  • Jun 29, 2018


    Anjay 1.10.1
    - Updated avs_commons to 3.6.1 - fixes compatibility issues in tests.
  • Jun 28, 2018


    Anjay 1.10.0
    - 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.
  • May 29, 2018


    Anjay 1.9.3
    - 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.
  • May 28, 2018


    Anjay 1.9.2
    - 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
  • May 17, 2018


    Anjay 1.9.1
    - 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
  • May 11, 2018


    Anjay 1.9.0
    * 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
  • Mar 15, 2018


    Fixed PcapEnabledTest method resolution order
  • Mar 14, 2018


    Anjay 1.8.2
    - 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.
  • Feb 28, 2018


    Anjay 1.8.1
    - Fixed infinite loop of Register retransmissions when LwM2M Server ignores
      Updates and Client attempts to re-register
    - Fixed nested links in README.md