Skip to content

Commit 071cad2

Browse files
SeppoTakalocarlescufi
authored andcommitted
net: lwm2m: Deprecate lwm2m_get/set_u64
Deprecate lwm2m_set_u64() and lwm2m_get_u64 as only LWM2M_RES_TYPE_S64 exist. Unsigned variant is not defined. Technically these might have worked OK, but it is undefined what happens to large unsigned values when those are converted to various payload formats (like CBOR) that might decode numbers differently depending of their signedness. Signed-off-by: Seppo Takalo <[email protected]>
1 parent f68fbd6 commit 071cad2

File tree

4 files changed

+12
-22
lines changed

4 files changed

+12
-22
lines changed

include/zephyr/net/lwm2m.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,11 +1009,16 @@ int lwm2m_engine_set_u64(const char *pathstr, uint64_t value);
10091009
/**
10101010
* @brief Set resource (instance) value (u64)
10111011
*
1012+
* @deprecated Unsigned 64bit value type does not exits.
1013+
* This is internally handled as a int64_t.
1014+
* Use lwm2m_set_s64() instead.
1015+
*
10121016
* @param[in] path LwM2M path as a struct
10131017
* @param[in] value u64 value
10141018
*
10151019
* @return 0 for success or negative in case of error.
10161020
*/
1021+
__deprecated
10171022
int lwm2m_set_u64(const struct lwm2m_obj_path *path, uint64_t value);
10181023

10191024
/**
@@ -1335,11 +1340,16 @@ int lwm2m_engine_get_u64(const char *pathstr, uint64_t *value);
13351340
/**
13361341
* @brief Get resource (instance) value (u64)
13371342
*
1343+
* @deprecated Unsigned 64bit value type does not exits.
1344+
* This is internally handled as a int64_t.
1345+
* Use lwm2m_get_s64() instead.
1346+
13381347
* @param[in] path LwM2M path as a struct
13391348
* @param[out] value u64 buffer to copy data into
13401349
*
13411350
* @return 0 for success or negative in case of error.
13421351
*/
1352+
__deprecated
13431353
int lwm2m_get_u64(const struct lwm2m_obj_path *path, uint64_t *value);
13441354

13451355
/**

subsys/net/lib/lwm2m/lwm2m_registry.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,7 @@ int lwm2m_engine_set_u64(const char *pathstr, uint64_t value)
890890
if (ret < 0) {
891891
return ret;
892892
}
893-
return lwm2m_set_u64(&path, value);
893+
return lwm2m_set_s64(&path, (int64_t) value);
894894
}
895895

896896
int lwm2m_set_s8(const struct lwm2m_obj_path *path, int8_t value)
@@ -1378,7 +1378,7 @@ int lwm2m_engine_get_u64(const char *pathstr, uint64_t *value)
13781378
if (ret < 0) {
13791379
return ret;
13801380
}
1381-
return lwm2m_get_u64(&path, value);
1381+
return lwm2m_get_s64(&path, (int64_t *) value);
13821382
}
13831383

13841384
int lwm2m_get_s8(const struct lwm2m_obj_path *path, int8_t *value)

subsys/net/lib/lwm2m/lwm2m_shell.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -246,14 +246,6 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv)
246246
goto out;
247247
}
248248
shell_print(sh, "%d\n", temp);
249-
} else if (strcmp(dtype, "-u64") == 0) {
250-
uint64_t temp = 0;
251-
252-
ret = lwm2m_get_u64(&path, &temp);
253-
if (ret != 0) {
254-
goto out;
255-
}
256-
shell_print(sh, "%lld\n", temp);
257249
} else if (strcmp(dtype, "-f") == 0) {
258250
double temp = 0;
259251

@@ -349,8 +341,6 @@ static int cmd_write(const struct shell *sh, size_t argc, char **argv)
349341
ret = lwm2m_set_u16(&path, strtoul(value, &e, 10));
350342
} else if (strcmp(dtype, "-u32") == 0) {
351343
ret = lwm2m_set_u32(&path, strtoul(value, &e, 10));
352-
} else if (strcmp(dtype, "-u64") == 0) {
353-
ret = lwm2m_set_u64(&path, strtoull(value, &e, 10));
354344
} else if (strcmp(dtype, "-b") == 0) {
355345
ret = lwm2m_set_bool(&path, strtoul(value, &e, 10));
356346
} else if (strcmp(dtype, "-t") == 0) {

tests/net/lib/lwm2m/lwm2m_registry/src/lwm2m_registry.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -203,16 +203,6 @@ ZTEST(lwm2m_registry, test_get_set)
203203
zassert_equal(strlen(buf), 0);
204204
}
205205

206-
ZTEST(lwm2m_registry, test_missing_u64)
207-
{
208-
/* This data type is missing, so use S64 resource instead */
209-
uint64_t u64 = 123;
210-
211-
zassert_equal(lwm2m_set_u64(&LWM2M_OBJ(32768, 0, LWM2M_RES_TYPE_S64), u64), 0);
212-
zassert_equal(lwm2m_get_u64(&LWM2M_OBJ(32768, 0, LWM2M_RES_TYPE_S64), &u64), 0);
213-
zassert_equal(u64, 123);
214-
}
215-
216206
ZTEST(lwm2m_registry, test_temp_sensor)
217207
{
218208
int ret;

0 commit comments

Comments
 (0)