summaryrefslogtreecommitdiff
path: root/fw/app/src
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2025-04-17 18:03:42 +0200
committerxengineering <me@xengineering.eu>2025-04-17 18:06:17 +0200
commitc6a4e671cfc27cd134266d31944e6d0bb4fedc7b (patch)
tree7913f7b509ea2a71e70595fe7318e6d6a30f20b5 /fw/app/src
parentd60dd348fd15cb0fbd797068d5e358ae183386f6 (diff)
downloadiot-contact-c6a4e671cfc27cd134266d31944e6d0bb4fedc7b.tar
iot-contact-c6a4e671cfc27cd134266d31944e6d0bb4fedc7b.tar.zst
iot-contact-c6a4e671cfc27cd134266d31944e6d0bb4fedc7b.zip
WIP: fw: app: settings: Temporary fix for SEGFAULTsettings
Diffstat (limited to 'fw/app/src')
-rw-r--r--fw/app/src/settings.c9
-rw-r--r--fw/app/src/settings.h2
2 files changed, 7 insertions, 4 deletions
diff --git a/fw/app/src/settings.c b/fw/app/src/settings.c
index d867207..04d309e 100644
--- a/fw/app/src/settings.c
+++ b/fw/app/src/settings.c
@@ -37,7 +37,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_NUMBER), // FIXME should be string but this leads to segfault
+ JSON_OBJ_DESCR_PRIM(struct settings_syslog_target, ip, JSON_TOK_STRING),
};
static const struct json_obj_descr settings_syslog_descr[] = {
@@ -52,14 +52,17 @@ int settings_to_json(void *buffer, size_t len)
{
struct settings settings = {0,};
+ static char ip[IPV6_STRLEN_MAX];
int ret = settings_runtime_get("syslog/target/ip",
- settings.syslog.target.ip,
- sizeof(settings.syslog.target.ip));
+ ip,
+ sizeof(ip));
if (ret < 0) {
LOG_ERR("Failed to get runtime setting syslog/target/ip (%d)", ret);
return ret;
}
+ settings.syslog.target.ip = ip;
+
ret = json_obj_encode_buf(
settings_descr,
ARRAY_SIZE(settings_descr),
diff --git a/fw/app/src/settings.h b/fw/app/src/settings.h
index 9d46132..d86477e 100644
--- a/fw/app/src/settings.h
+++ b/fw/app/src/settings.h
@@ -15,7 +15,7 @@
struct settings_syslog_target {
- char ip[IPV6_STRLEN_MAX];
+ const char *ip;
};
struct settings_syslog {