From 074a980d817e40f3c4c3b2d60423fc5e1373639a Mon Sep 17 00:00:00 2001 From: Christopher Head Date: Fri, 22 Jan 2021 19:21:23 -0800 Subject: [PATCH] Do not unregister listeners on unexpected data If a registered event listener callback returns `false`, the listener is unregistered. A network packet arriving on a different port, or a message with a missing part, should not cause the syslog system to shut down. Return `nil` instead of `false` if those sanity checks fail, to keep the listener registered. --- syslog/OpenOS/etc/rc.d/syslogd.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/syslog/OpenOS/etc/rc.d/syslogd.lua b/syslog/OpenOS/etc/rc.d/syslogd.lua index c850978..d79c0a6 100644 --- a/syslog/OpenOS/etc/rc.d/syslogd.lua +++ b/syslog/OpenOS/etc/rc.d/syslogd.lua @@ -69,15 +69,15 @@ local function wentry(_,msg,level,service,host) end local function remote_listener(_,from,port,data) - if port ~= cfg.port then return false end + if port ~= cfg.port then return end local service, level, msg = data:match("(.-)\t(%d)\t(.+)") - if not service or not level or not msg then return false end + if not service or not level or not msg then return end msg, level, service = tostring(msg),tonumber(level),tostring(service) wentry(nil,msg,level,service,from) end local function local_listener(_,msg,level,service) - if not service or not level or not msg then return false end + if not service or not level or not msg then return end msg, level, service = tostring(msg),tonumber(level),tostring(service) wentry(nil,msg,level,service,hostname) end