summaryrefslogtreecommitdiff
path: root/fw
diff options
context:
space:
mode:
Diffstat (limited to 'fw')
-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 {