From: Vsevolod Stakhov Date: Fri, 1 May 2020 19:13:43 +0000 (+0100) Subject: [Fix] Fix lua_parse_symbol_type function logic X-Git-Tag: 2.6~460 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c1bd3f81f3fba86a22bb5ed95563b8370e07d111;p=thirdparty%2Frspamd.git [Fix] Fix lua_parse_symbol_type function logic --- diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index 4d728cf144..fdf87d3324 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -1814,17 +1814,23 @@ lua_parse_symbol_type (const gchar *str) str = vec[i]; if (g_ascii_strcasecmp (str, "virtual") == 0) { - ret = SYMBOL_TYPE_VIRTUAL; + ret |= SYMBOL_TYPE_VIRTUAL; + ret &= ~SYMBOL_TYPE_NORMAL; + ret &= ~SYMBOL_TYPE_CALLBACK; } else if (g_ascii_strcasecmp (str, "callback") == 0) { - ret = SYMBOL_TYPE_CALLBACK; + ret |= SYMBOL_TYPE_CALLBACK; + ret &= ~SYMBOL_TYPE_NORMAL; + ret &= ~SYMBOL_TYPE_VIRTUAL; } else if (g_ascii_strcasecmp (str, "normal") == 0) { - ret = SYMBOL_TYPE_NORMAL; + ret |= SYMBOL_TYPE_NORMAL; + ret &= ~SYMBOL_TYPE_CALLBACK; + ret &= ~SYMBOL_TYPE_VIRTUAL; } else if (g_ascii_strcasecmp (str, "prefilter") == 0) { - ret = SYMBOL_TYPE_PREFILTER | SYMBOL_TYPE_GHOST; + ret |= SYMBOL_TYPE_PREFILTER | SYMBOL_TYPE_GHOST; } else if (g_ascii_strcasecmp (str, "postfilter") == 0) { - ret = SYMBOL_TYPE_POSTFILTER | SYMBOL_TYPE_GHOST; + ret |= SYMBOL_TYPE_POSTFILTER | SYMBOL_TYPE_GHOST; } else if (g_ascii_strcasecmp (str, "idempotent") == 0) { - ret = SYMBOL_TYPE_POSTFILTER | SYMBOL_TYPE_GHOST | + ret |= SYMBOL_TYPE_POSTFILTER | SYMBOL_TYPE_GHOST | SYMBOL_TYPE_IDEMPOTENT; } else { gint fl = 0;