summaryrefslogtreecommitdiff
path: root/fw/app/src/settings.c
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2025-04-16 22:14:06 +0200
committerxengineering <me@xengineering.eu>2025-04-16 22:14:06 +0200
commit686e372d42002a189a1e9b73e387e3414a97fc97 (patch)
tree6286d89d051ed839b65db9ac1a92cf2ff8af32ee /fw/app/src/settings.c
parent04b2fd43f67cd191e5b38c93ec6f20b06b7946e1 (diff)
downloadiot-contact-686e372d42002a189a1e9b73e387e3414a97fc97.tar
iot-contact-686e372d42002a189a1e9b73e387e3414a97fc97.tar.zst
iot-contact-686e372d42002a189a1e9b73e387e3414a97fc97.zip
WIP: fw: app: Fix SEGFAULT
TODO: Only JSON numbers seem to be encodable. Strings lead to SEGFAULT TODO: For some reason the encoded string is not part of the HTTP response.
Diffstat (limited to 'fw/app/src/settings.c')
-rw-r--r--fw/app/src/settings.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/fw/app/src/settings.c b/fw/app/src/settings.c
index 72cea12..22e55fc 100644
--- a/fw/app/src/settings.c
+++ b/fw/app/src/settings.c
@@ -36,7 +36,7 @@ int init_settings(void) {
SYS_INIT(init_settings, APPLICATION, 50);
static const struct json_obj_descr settings_syslog_target_descr[] = {
- JSON_OBJ_DESCR_PRIM(struct settings_syslog_target, ip, JSON_TOK_STRING),
+ JSON_OBJ_DESCR_PRIM(struct settings_syslog_target, ip, JSON_TOK_NUMBER),
};
static const struct json_obj_descr settings_syslog_descr[] = {
@@ -51,21 +51,24 @@ int settings_to_json(void *buffer, size_t len)
{
struct settings settings = {0,};
- int ret = settings_runtime_get("syslog/target/ip",
- settings.syslog.target.ip,
- sizeof(settings.syslog.target.ip));
- if (ret < 0) {
- LOG_ERR("Failed to get runtime setting syslog/target/ip (%d)", ret);
- return ret;
- }
+// int ret = settings_runtime_get("syslog/target/ip",
+// settings.syslog.target.ip,
+// sizeof(settings.syslog.target.ip));
+// if (ret < 0) {
+// LOG_ERR("Failed to get runtime setting syslog/target/ip (%d)", ret);
+// return ret;
+// }
- ret = json_obj_encode_buf(
- settings_syslog_target_descr,
- ARRAY_SIZE(settings_syslog_target_descr),
- &(settings.syslog.target),
+ settings.syslog.target.ip = 42;
+
+ int ret = json_obj_encode_buf(
+ settings_descr,
+ ARRAY_SIZE(settings_descr),
+ &settings,
buffer,
len
);
+
if (ret < 0) {
LOG_ERR("Failed to serialize settings as JSON");
return ret;