summaryrefslogtreecommitdiff
path: root/fw/app/src/settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'fw/app/src/settings.c')
-rw-r--r--fw/app/src/settings.c9
1 files changed, 6 insertions, 3 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),