The `local_listener` function is obviously intended to be used as the
event listener for locally pushed `syslog` events, to do preliminary
sanity checks and type conversions before calling `wentry`. However, it
was not actually registered as such. Not only does this mean the sanity
checks and type conversions could be skipped, it also means that `rc
syslogd stop` would not work because `wentry` was actually registered as
a listener while `local_listener` was pushed in the `listeners` table,
so `event.ignore` would be passed the wrong value and would not
unregister `wentry`.
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.