Permalink
Commits on Oct 8, 2018
  1. Anjay 1.13.1

    sznaider committed Oct 8, 2018
    Improvements:
    - Fixed compilation warnings caused by unused variables / mismatching
      printf format specifiers
Commits on Sep 21, 2018
  1. Anjay 1.12.0

    sznaider committed Sep 21, 2018
    Breaking changes:
    - Updated AvsCommons to 3.8.0, which requires CMake 3.4.0 or higher. This
      means that Anjay requires CMake 3.4.0 or higher as well.
    - Running tests requires grequests (https://github.com/kennethreitz/grequests)
      now
    
    Features:
    - Allowed configuration of UDP DTLS Handshake transmission parameters by
      anjay_configuration_t::udp_dtls_hs_tx_params field
    - Allowed configuration of firmware download CoAP transmission parameters
      by anjay_fw_update_handlers_t::get_coap_tx_params handler implemented by
      the user
    - Added sequence diagrams for library operations in documentation chapter
      "4.4. A few notes on general usage"
    
    Improvements:
    - Reformatted the entire codebase with clang-format
    - Added more tests verifying demo client's behavior in situations with
      network connectivity issues
    - Explained in the demo application why file descriptors other than 0, 1, 2,
      are being closed
    
    Bugfixes:
    - Fixed the cause of "could not stringify socket address" error
Commits on Sep 4, 2018
  1. Anjay 1.11.0

    sznaider committed Sep 4, 2018
    Breaking changes:
    - Removed ANJAY_BINDING_* constants. Whenever used, they should now be replaced
      with plain c-strings, as follows:
    		* ANJAY_BINDING_U -> "U",
    		* ANJAY_BINDING_S -> "S",
    		* ANJAY_BINDING_US -> "US",
    		* ANJAY_BINDING_UQ -> "UQ",
    		* ANJAY_BINDING_SQ -> "SQ",
    		* ANJAY_BINDING_UQS -> "UQS",
    		* ANJAY_BINDING_NONE -> ""
    
    Features:
    - Implemented anjay_attr_storage_purge(), to allow cleaning up Attribute
      Storage data without recreating a whole client instance
    - Implemented anjay_access_control_purge(), anjay_access_control_is_modified(),
      to allow better control over persistence
    - Updated avs_commons to version 3.7.1
    
    Bugfixes:
    - Fixed implementation of bytes resources in demo test object code
    - Added missing header in attr_storage.h
    
    Improvements:
    - Added support for multiple object versions in lwm2m_object_registry.py
      script
    - Added some previously missing optional packages to README.md, required to run
      integration tests
    - Improved performance of integration tests
    - Improved documentation of internal server-related APIs
    - Improved unit tests API, specifically added macros that help building CoAP
      messages without the knowledge of exact packet encoding
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 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 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 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 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.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 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 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 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 Mar 15, 2017
  1. Merge pull request #4 from AVSystem/fix-endianness

    sznaider committed Mar 15, 2017
    Fix endianness problems and compilation flags
Commits on Feb 24, 2017
  1. Integration with travis

    sznaider committed Feb 24, 2017
Commits on Feb 17, 2017
  1. Updated README.md

    sznaider committed Feb 17, 2017