From 409348732bb4cd6ec0c06c4b38f26f528313ffdf Mon Sep 17 00:00:00 2001 From: xengineering Date: Tue, 15 Apr 2025 18:33:31 +0200 Subject: fw: app: syslog: Put only IP into syslog/target/ip The old format contained `[]:`. Nevertheless the format should be as strict as possible. Thus only the IP is used in the setting. --- fw/app/src/syslog.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'fw') diff --git a/fw/app/src/syslog.c b/fw/app/src/syslog.c index 8fe2412..c3b5815 100644 --- a/fw/app/src/syslog.c +++ b/fw/app/src/syslog.c @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -27,7 +28,8 @@ LOG_MODULE_REGISTER(syslog); #define NETWORK_BUG_DELAY K_MSEC(4000) #define L4_EVENT_MASK (NET_EVENT_L4_CONNECTED | NET_EVENT_L4_DISCONNECTED) -#define IPV6_STRLEN_MAX 40 // including '\0' +#define IPV6_STRLEN_MAX 39 // excluding '\0' +#define SYSLOG_TARGET_PORT 514 struct net_mgmt_event_callback l4_cb; static K_SEM_DEFINE(network_connected, 0, 1); @@ -104,10 +106,10 @@ int syslog_handle_set(const char *name, size_t len, settings_read_cb read_cb, memset(target_ip, '\0', sizeof(target_ip)); ssize_t ret = read_cb(cb_arg, target_ip, MIN(sizeof(target_ip) - 1, len)); if (ret < 0) { - LOG_ERR("Failed to set target (%d)", ret); + LOG_ERR("Failed to set target IP (%d)", ret); return (int)ret; } - LOG_INF("Set target to '%s'", target_ip); + LOG_INF("Set target IP to '%s'", target_ip); return 0; } @@ -116,10 +118,20 @@ int syslog_handle_set(const char *name, size_t len, settings_read_cb read_cb, int syslog_handle_commit(void) { - if (log_backend_net_set_addr(target_ip) == false) { - LOG_ERR("Could not commit target to '%s'", target_ip); + char target[IPV6_STRLEN_MAX + 9]; // 9 for brackets, colon, port and \0 + + int ret = snprintf(target, sizeof(target), "[%s]:%d", target_ip, + SYSLOG_TARGET_PORT); + if (ret < 0) { + LOG_ERR("Failed to format target based on ip and port (%d)", ret); + return ret; + } + + if (log_backend_net_set_addr(target) == false) { + LOG_ERR("Could not commit settings"); + return -EINVAL; } - LOG_INF("Committed new target: '%s'", target_ip); + LOG_INF("Committed settings"); return 0; } -- cgit v1.2.3-70-g09d2