Skip to content

Commit faf58d5

Browse files
mzajac-avsKucmasz
authored andcommitted
Anjay 3.9.0
Features - LwM2M Gateway functionality was added. To see the feature description, API documentation and tutorial on its usage, see Anjay docs - Added a ``coap_downloader_retry_count`` and ``coap_downloader_retry_delay`` configuration options that allow to resume the CoAP download process in case of network errors. Improvements - Extended the functionality of the flag enabling Connection ID to also include connections to the file download CoAP server, in addition to the LwM2M server - Migrated GitHub Actions tests on macOS to the macos-14 runner. - Refactored test_ghactions.py. - Added Github Actions test on macOS for the AppleClang. Bugfixes - Ensured that Github Actions tests on macOS actually runs on LLVM installed from Homebrew instead of AppleClang. - Minor fix in the devconfig.
1 parent 80189c4 commit faf58d5

File tree

728 files changed

+12588
-1403
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

728 files changed

+12588
-1403
lines changed

.github/workflows/anjay-tests.yml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2024 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#
@@ -138,36 +138,42 @@ jobs:
138138
CXX: clang++
139139

140140
macOS-compilers-test:
141-
runs-on: macos-12
141+
runs-on: macos-14
142142
env:
143143
CC: ${{ matrix.CC }}
144144
CXX: ${{ matrix.CXX }}
145145
COMPILER_VERSION: ${{ matrix.COMPILER_VERSION }}
146+
MEM_CHECK_TOOL: ${{ matrix.MEM_CHECK_TOOL }}
146147
steps:
147148
# NOTE: v2 requires Git 2.18 for submodules, it's not present in the image
148149
- uses: actions/checkout@v1
149150
with:
150151
submodules: recursive
151152
- run: brew update
152153
# NOTE: try the brew install command twice to work around "brew link" errors
153-
- run: INSTALL_CMD="brew install openssl $COMPILER_VERSION"; $INSTALL_CMD || $INSTALL_CMD
154+
- run: INSTALL_CMD="brew install python3 openssl ${COMPILER_VERSION:+$COMPILER_VERSION}"; $INSTALL_CMD || $INSTALL_CMD
154155
# NOTE: Some tests don't pass on mbedTLS 3.6.2 now, so we need to install an older version
155156
# Homebrew only specifiers major version of mbedTLS, so let's pin the version to 3.6.0 manually
156157
- run: curl -f https://raw.githubusercontent.com/Homebrew/homebrew-core/219dabf6cab172fb8b62b4d8598e016e190c3c20/Formula/m/mbedtls.rb > /tmp/mbedtls.rb
157158
- run: brew install --formula /tmp/mbedtls.rb
158159
- run: brew pin mbedtls
159160
# NOTE: The above command may have installed a new version of Python, that's why we launch it weirdly
160-
- run: /usr/bin/env python3 -m pip install -r requirements.txt
161-
- run: env JAVA_HOME="$JAVA_HOME_17_X64" ./devconfig --with-asan --without-analysis --no-examples -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_URL_CHECK=OFF -DWITH_IPV6=OFF
161+
- run: /usr/bin/env python3 -m pip install -r requirements.txt --break-system-packages
162+
- run: env JAVA_HOME="$JAVA_HOME_17_X64" ./devconfig $MEM_CHECK_TOOL --without-analysis --no-examples -DWITH_VALGRIND_TRACK_ORIGINS=OFF -DWITH_URL_CHECK=OFF -DWITH_IPV6=OFF -DMBEDTLS_ROOT_DIR=/opt/homebrew/opt/mbedtls
162163
- run: LC_ALL=en_US.UTF-8 make -j
163164
- run: LC_ALL=en_US.UTF-8 make check
164165
strategy:
165166
fail-fast: false
166167
matrix:
167168
include:
168-
- CC: gcc-12
169-
CXX: g++-12
170-
COMPILER_VERSION: gcc@12
169+
- CC: /opt/homebrew/opt/gcc/bin/gcc-14
170+
CXX: /opt/homebrew/opt/gcc/bin/g++-14
171+
COMPILER_VERSION: gcc@14
172+
MEM_CHECK_TOOL: --without-memcheck
173+
- CC: /opt/homebrew/opt/llvm/bin/clang
174+
CXX: /opt/homebrew/opt/llvm/bin/clang++
175+
COMPILER_VERSION: llvm
176+
MEM_CHECK_TOOL: --with-asan
171177
- CC: cc
172178
CXX: c++
173-
COMPILER_VERSION: llvm
179+
MEM_CHECK_TOOL: --with-asan

.github/workflows/coverity.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2024 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
ignore = untracked
55
[submodule "tests/integration/framework/nsh-lwm2m/powercmd"]
66
path = tests/integration/framework/nsh-lwm2m/powercmd
7-
url = https://github.com/dextero/powercmd
7+
url = https://github.com/dextero/powercmd.git
88
[submodule "deps/avs_commons"]
99
path = deps/avs_commons
1010
url = https://github.com/AVSystem/avs_commons.git

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Changelog
22

3+
## 3.9.0 (February 28th, 2025)
4+
5+
### Features
6+
7+
- LwM2M Gateway functionality was added. To see the feature description, API
8+
documentation and tutorial on its usage, see Anjay docs
9+
- Added a ``coap_downloader_retry_count`` and ``coap_downloader_retry_delay``
10+
configuration options that allow to resume the CoAP download process in case
11+
of network errors.
12+
13+
### Improvements
14+
15+
- Extended the functionality of the flag enabling Connection ID to also include
16+
connections to the file download CoAP server, in addition to the LwM2M server
17+
- Migrated GitHub Actions tests on macOS to the macos-14 runner.
18+
- Refactored test_ghactions.py.
19+
- Added Github Actions test on macOS for the AppleClang.
20+
21+
### Bugfixes
22+
23+
- Ensured that Github Actions tests on macOS actually runs on LLVM installed
24+
from Homebrew instead of AppleClang.
25+
- Minor fix in the devconfig.
26+
327
## 3.8.1 (November 13th, 2024)
428

529
### Improvements

CMakeLists.txt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2024 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#
@@ -8,7 +8,7 @@
88
cmake_minimum_required(VERSION 3.6.0)
99

1010
project(anjay C)
11-
set(ANJAY_VERSION "3.8.1" CACHE STRING "Anjay library version")
11+
set(ANJAY_VERSION "3.9.0" CACHE STRING "Anjay library version")
1212
set(ANJAY_BINARY_VERSION 1.0.0)
1313

1414
set(ANJAY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
@@ -272,6 +272,7 @@ option(WITHOUT_IP_STICKINESS "Disable support for IP stickiness" OFF)
272272
option(WITHOUT_COMPOSITE_OPERATIONS "Disable composite operations" OFF)
273273
cmake_dependent_option(WITH_SENML_JSON "Enable support for SenML JSON content format" ON WITH_LWM2M11 OFF)
274274
cmake_dependent_option(WITH_CBOR "Enable support for CBOR and SenML CBOR content formats" ON WITH_LWM2M11 OFF)
275+
cmake_dependent_option(WITH_LWM2M_GATEWAY "Enable support /25 LwM2M Gateway Object" OFF "WITH_LWM2M11;NOT WITH_CORE_PERSISTENCE" OFF)
275276
cmake_dependent_option(WITH_SEND "Enable support for LwM2M 1.1 Send operation" ON "WITH_CBOR OR WITH_SENML_JSON" OFF)
276277
option(WITHOUT_QUEUE_MODE_AUTOCLOSE "Disable automatic closing of server connection sockets after MAX_TRANSMIT_WAIT of inactivity" OFF)
277278

@@ -352,6 +353,7 @@ add_library(anjay
352353
include_public/anjay/io.h
353354
include_public/anjay/ipso_objects.h
354355
include_public/anjay/ipso_objects_v2.h
356+
include_public/anjay/lwm2m_gateway.h
355357
include_public/anjay/lwm2m_send.h
356358
include_public/anjay/security.h
357359
include_public/anjay/server.h
@@ -492,6 +494,7 @@ add_library(anjay
492494
src/modules/ipso/anjay_ipso_button.c
493495
src/modules/ipso_v2/anjay_ipso_v2_3d_sensor.c
494496
src/modules/ipso_v2/anjay_ipso_v2_basic_sensor.c
497+
src/modules/lwm2m_gateway/anjay_lwm2m_gateway.c
495498
src/modules/security/anjay_mod_security.c
496499
src/modules/security/anjay_mod_security.h
497500
src/modules/security/anjay_security_persistence.c
@@ -561,6 +564,7 @@ set(ANJAY_WITH_SEND "${WITH_SEND}")
561564
set(ANJAY_WITH_SENML_JSON "${WITH_SENML_JSON}")
562565
set(ANJAY_WITHOUT_QUEUE_MODE_AUTOCLOSE "${WITHOUT_QUEUE_MODE_AUTOCLOSE}")
563566
set(ANJAY_WITH_CONN_STATUS_API "${WITH_CONN_STATUS_API}")
567+
set(ANJAY_WITH_LWM2M_GATEWAY "${WITH_LWM2M_GATEWAY}")
564568

565569
configure_file(include_public/anjay/anjay_config.h.in
566570
include_public/anjay/anjay_config.h)
@@ -870,6 +874,10 @@ if(WITH_SEND)
870874
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/include_public/anjay/lwm2m_send.h"
871875
DESTINATION include/anjay)
872876
endif()
877+
if(WITH_LWM2M_GATEWAY)
878+
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/include_public/anjay/lwm2m_gateway.h"
879+
DESTINATION include/anjay)
880+
endif()
873881
if(WITH_MODULE_access_control)
874882
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/include_public/anjay/access_control.h"
875883
DESTINATION include/anjay)

CONTRIBUTING.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
..
2-
Copyright 2017-2024 AVSystem <avsystem@avsystem.com>
2+
Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
33
AVSystem Anjay LwM2M SDK
44
All rights reserved.
55

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2024 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#

NOTICE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Anjay
2-
Copyright 2017-2024 AVSystem
2+
Copyright 2017-2025 AVSystem
33

44
This product includes software developed at AVSystem (www.avsystem.com).
55

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,12 @@ This version includes full support for OMA LwM2M TS 1.1 features. Some features,
117117
- Server
118118
- Firmware Update
119119
- IPSO single and three-axis sensor objects
120+
- LwM2M Gateway
120121

121122
- Stream-oriented persistence API
122123

124+
- [LwM2M Gateway functionality](https://www.openmobilealliance.org/release/LwM2M_Gateway/V1_1_1-20240312-A/OMA-TS-LWM2M_Gateway-V1_1_1-20240312-A.pdf)
125+
123126
## About OMA LwM2M
124127

125128
OMA LwM2M is a remote device management and telemetry protocol designed to conserve network resources. It is especially suitable for constrained wireless devices, where network communication is a major factor affecting battery life. LwM2M features secure (DTLS-encrypted) methods of remote bootstrapping, configuration and notifications over UDP or SMS.

cmake/anjay-config.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2017-2024 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2017-2025 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay LwM2M SDK
33
# All rights reserved.
44
#

0 commit comments

Comments
 (0)