Permalink
Commits on Jul 10, 2018
  1. Anjay 1.10.2

    sznaider committed Jul 10, 2018
    Features:
    - 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
    
    Fixes:
    - Fixed client behavior when received a 4.03 Forbidden on LwM2M Register
    - Fixed outdated reference to the LwM2M Specification in the documentation
    
    Improvements:
    - Added more tests verifying client behavior in different scenarios
Commits on Jun 29, 2018
  1. Anjay 1.10.1

    dextero committed Jun 29, 2018
    Fixes:
    - 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
    Features:
    - 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
    	  AvsCommons,
    
    	* 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.
    
    Improvements:
    - 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.
    
    Fixes:
    - 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
    Improvements:
    - 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
    Features:
    - Updated avs_commons to 3.4.2 including various compatibility improvements
    - Added preliminary Windows support
    
    Bugfixes:
    - Fixed many different casts between incompatible function types found by gcc 8.1
    - Fixed compile errors caused by some (perfectly valid) CMake option configurations
    
    Improvements:
    - 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
    Bugfixes:
    - 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:
    
    Bugfixes:
    - 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
    
    Improvements:
    - 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
    Features:
    * 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
    
    Improvements:
    * 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
      anjay_download()
    * 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:
    
    Features:
    * 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
    
    Improvements:
    * 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
    
    Bugfixes:
    * 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
    Improvements:
    - 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.
    
    Bugfixes:
    - 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
    Bugfixes:
    - Fixed infinite loop of Register retransmissions when LwM2M Server ignores
      Updates and Client attempts to re-register
    - Fixed nested links in README.md
Commits on Feb 21, 2018
  1. Anjay 1.8.0

    kFYatek committed Feb 21, 2018
    Features:
    - 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
    
    Bugfixes:
    - 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
    Features:
    - anjay_codegen is now able to generate C++ code
    
    Improvements:
    - Updated timeouts in integration tests which should improve test result
      stability
    - 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
    Bugfixes:
    - 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
    Bugfixes:
    - 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.
    
    Features:
    - Introduced anjay_all_connections_failed() method, allowing the user
      to check if Anjay already gave up on trying to reach LwM2M Servers.
    
    Improvements:
    - 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
    Features:
    - 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
      Server
    - 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
      SSID
    - Added anjay_disable_server_with_timeout()
    
    Improvements:
    - Improved compatibility with CMake 2.8.12
    
    Bugfixes:
    - 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
    
    Improvements:
    - 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
      constants
    - Improved compatibility with CMake 2.8 and CentOS
    
    Other:
    - anjay_persistence_time() is now deprecated
Commits on Dec 11, 2017
  1. Anjay 1.5.2

    kFYatek committed Dec 11, 2017
    Bugfixes:
    - 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
        numbers
      - Fixed minor error handling problems
      - Fixed link commands for TinyDTLS interoperability
    
    Improvements:
    - 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
    Features:
    - Support HTTP download resumption
    
    Bugfixes:
    - Fix some race conditions in integration tests that revealed themselves
      on slow machines
    - Fix anjay_download() retrying download forever even in case of terminal
      failures
    - Fix Firmware Update resetting by a null-byte Write
    - Stop scheduling useless LwM2M Updates to the Bootstrap Server
    
    Improvements:
    - 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
    Features:
    - 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
      semantics
    - Added object versioning support
    - Added support for LwM2M Server URIs with Uri-Path and Uri-Query
    
    Bugfixes:
    - Fixed travis builds on macOS
    - Fixed a few misleading statements in the documentation
    - Fixed anjay_codegen.py handling of Multiple Instance Resources
    - Fixed Content-Format for responses on Bootstrap Discover request
    - Fixed Write (replace) on Device object instance in demo client
    
    Improvements:
    - 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
      anjay_attr_storage_is_modified
    - Updated porting guide
    - Replaced Internal Server Error responses with more specific error
      codes in a few places
    
    Other:
    - 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
    Features:
    - 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
    
    Bugfixes:
    - Fixed symbol visibility checks
    
    Improvements:
    - 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 anjay_codegen.py script in the documentation
Commits on Sep 8, 2017
  1. Anjay 1.4.0

    kFYatek committed Sep 8, 2017
    Features:
    - New tools: lwm2m_object_registry.py and anjay_codegen.py, 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
    
    Bugfixes:
    - 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
    
    Improvements:
    - POSIX dependencies are now better isolated to ease porting onto non-POSIX
      platforms
    - 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
    Features:
    - Implemented anjay_download() API for asynchronous CoAP(S) downloads
    - Added anjay_download example code
    - Added support for CoAP firmware download in demo application
    
    Bugfixes:
    - Fixed Register/Update transport when changing Binding
    - Fixed lt/gt/st semantics according to
      OpenMobileAlliance/OMA_LwM2M_for_Developers#191
    - 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
    
    Improvements:
    - 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
    Features:
    - 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
      Storage.
    
    Improvements:
    - Removed dependency to Boost.Python in tests, and migrated to pybind11
      instead (included as a submodule).
    
    - Implemented sending Update after Lifetime Resource has changed
      (OpenMobileAlliance/OMA_LwM2M_for_Developers#185)
    
    - Implemented proper Bootstrap Server Account purge logic
      (OpenMobileAlliance/OMA_LwM2M_for_Developers#195)
    
    - 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.
    
    Bugfixes:
    - 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
    Features:
    - Added `confirmable_notifications` field to `anjay_configuration_t`,
      enabling the client to only send LwM2M Notify as CoAP Confirmable
      messages.
    - 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.
    
    Improvements:
    - 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.
    
    Bugfixes:
    - 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
      option.
    - Fixed compilation warnings in relase builds.
Commits on May 26, 2017
  1. Anjay 1.3.0

    kFYatek committed May 26, 2017
    Features:
    * 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
    
    Improvements:
    * 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
    
    Bugfixes:
    * 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
    
    Other:
    * 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