From: Vsevolod Stakhov Date: Sat, 12 Oct 2019 09:52:33 +0000 (+0100) Subject: [Minor] Skip double message processing X-Git-Tag: 2.1~98 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=edf70f59c11f1877bda35ad0f85889141a89224f;p=thirdparty%2Frspamd.git [Minor] Skip double message processing --- diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index c3159f16bf..5be5b3f945 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -1326,11 +1326,19 @@ lua_task_process_message (lua_State *L) { LUA_TRACE_POINT; struct rspamd_task *task = lua_check_task (L, 1); + gboolean enforce = FALSE; if (task != NULL) { if (task->msg.len > 0) { + if (lua_isboolean (L, 2)) { + enforce = lua_toboolean (L, 2); + } + if (rspamd_message_parse (task)) { - if (!(task->flags & RSPAMD_TASK_FLAG_SKIP_PROCESS)) { + if (enforce || + (!(task->flags & RSPAMD_TASK_FLAG_SKIP_PROCESS) && + !(task->processed_stages & RSPAMD_TASK_STAGE_PROCESS_MESSAGE))) { + lua_pushboolean (L, TRUE); rspamd_message_process (task); task->processed_stages |= RSPAMD_TASK_STAGE_PROCESS_MESSAGE;