From: Oto Šťáva Date: Fri, 24 Feb 2023 10:08:59 +0000 (+0100) Subject: daemon/engine: warning when log_groups contains a non-existent group X-Git-Tag: v5.7.0~14^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a614818b64758666c0a7e6e50ee63f50b8236261;p=thirdparty%2Fknot-resolver.git daemon/engine: warning when log_groups contains a non-existent group Until now, kresd would refuse to start when a log_groups Lua call contained a non-existent group. After this change, only a warning is printed, which helps during development while switching between branches with new logging groups. I don't think changing the configuration all the time just for a logging group is warranted. --- diff --git a/daemon/engine.c b/daemon/engine.c index 26c225f39..7ee565121 100644 --- a/daemon/engine.c +++ b/daemon/engine.c @@ -229,11 +229,14 @@ static int l_log_groups(lua_State *L) const char *grp_str = lua_tostring(L, -1); if (!grp_str) goto bad_call; + enum kr_log_group grp = kr_log_name2grp(grp_str); - if (grp < 0) - lua_error_p(L, "unknown log group '%s'", lua_tostring(L, -1)); + if (grp >= 0) { + kr_log_group_add(grp); + } else { + kr_log_warning(SYSTEM, "WARNING: unknown log group '%s'\n", lua_tostring(L, -1)); + } - kr_log_group_add(grp); ++idx; lua_pop(L, 1); } diff --git a/daemon/lua/log.test.lua b/daemon/lua/log.test.lua index 197aa74cc..ec5abd28c 100644 --- a/daemon/lua/log.test.lua +++ b/daemon/lua/log.test.lua @@ -30,8 +30,8 @@ local function test_log_groups() same(log_groups({'devel'}), {'devel'}, 'another call overrides previously set groups') same(log_groups({'devel', 'system'}), {'system', 'devel'}, 'configure multiple groups') same(log_groups({}), {}, 'clear groups with empty table') + same(log_groups({'nonexistent'}), {}, "nonexistent group is ignored") boom(log_groups, { 'string' }, "group argument can't be string") - boom(log_groups, { {'nonexistent'} }, "nonexistent group can't be added") boom(log_groups, { 1, 2 }, "group doesn't take multiple arguments") end