]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Fix plugins to work with empty tasks mime-rework 2976/head
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 12 Jul 2019 16:27:13 +0000 (17:27 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 12 Jul 2019 16:27:13 +0000 (17:27 +0100)
src/lua/lua_task.c
src/plugins/lua/greylist.lua
src/plugins/lua/rbl.lua

index d77d5b01d6be8c31cc009ec005df641aaf6d8ddf..0684599222a4fa20104d0d4435e378011dbe2719 100644 (file)
@@ -5416,18 +5416,23 @@ lua_task_get_newlines_type (lua_State *L)
        LUA_TRACE_POINT;
        struct rspamd_task *task = lua_check_task (L, 1);
 
-       if (task && task->message) {
-               switch (MESSAGE_FIELD (task, nlines_type)) {
-               case RSPAMD_TASK_NEWLINES_CR:
-                       lua_pushstring (L, "cr");
-                       break;
-               case RSPAMD_TASK_NEWLINES_LF:
-                       lua_pushstring (L, "lf");
-                       break;
-               case RSPAMD_TASK_NEWLINES_CRLF:
-               default:
+       if (task) {
+               if (task->message) {
+                       switch (MESSAGE_FIELD (task, nlines_type)) {
+                       case RSPAMD_TASK_NEWLINES_CR:
+                               lua_pushstring (L, "cr");
+                               break;
+                       case RSPAMD_TASK_NEWLINES_LF:
+                               lua_pushstring (L, "lf");
+                               break;
+                       case RSPAMD_TASK_NEWLINES_CRLF:
+                       default:
+                               lua_pushstring (L, "crlf");
+                               break;
+                       }
+               }
+               else {
                        lua_pushstring (L, "crlf");
-                       break;
                }
        }
        else {
index f39f197f5c52f2d05aea413e627f8486cd423322..796623b7faf3d97b407298f401662982a91b16b1 100644 (file)
@@ -63,6 +63,7 @@ local settings = {
 
 local rspamd_logger = require "rspamd_logger"
 local rspamd_util = require "rspamd_util"
+local lua_redis = require "lua_redis"
 local fun = require "fun"
 local hash = require "rspamd_cryptobox_hash"
 local rspamd_lua_utils = require "lua_util"
@@ -258,13 +259,13 @@ local function greylist_check(task)
     end
   end
 
-  local ret = rspamd_redis_make_request(task,
-    redis_params, -- connect params
-    hash_key, -- hash key
-    false, -- is write
-    redis_get_cb, --callback
-    'MGET', -- command
-    {body_key, meta_key} -- arguments
+  local ret = lua_redis.redis_make_request(task,
+      redis_params, -- connect params
+      hash_key, -- hash key
+      false, -- is write
+      redis_get_cb, --callback
+      'MGET', -- command
+      {body_key, meta_key} -- arguments
   )
   if not ret then
     rspamd_logger.errx(task, 'cannot make redis request to check results')
@@ -373,7 +374,7 @@ local function greylist_set(task)
 
     if not settings.check_local and is_rspamc then return end
 
-    ret,conn,upstream = rspamd_redis_make_request(task,
+    ret,conn,upstream = lua_redis.make_request(task,
       redis_params, -- connect params
       hash_key, -- hash key
       true, -- is write
@@ -396,7 +397,7 @@ local function greylist_set(task)
     rspamd_logger.infox(task, 'greylisted until "%s", new record', end_time)
     greylist_message(task, end_time, 'new record')
     -- Create new record
-    ret,conn,upstream = rspamd_redis_make_request(task,
+    ret,conn,upstream = lua_redis.redis_make_request(task,
       redis_params, -- connect params
       hash_key, -- hash key
       true, -- is write
@@ -458,7 +459,7 @@ if opts then
   whitelist_domains_map = lua_map.rspamd_map_add(N, 'whitelist_domains_url',
     'map', 'Greylist whitelist domains map')
 
-  redis_params = rspamd_parse_redis_server(N)
+  redis_params = lua_redis.parse_redis_server(N)
   if not redis_params then
     rspamd_logger.infox(rspamd_config, 'no servers are specified, disabling module')
     rspamd_lua_utils.disable_module(N, "redis")
@@ -468,14 +469,12 @@ if opts then
       type = 'postfilter',
       callback = greylist_set,
       priority = 6,
-      flags = 'empty',
     })
     rspamd_config:register_symbol({
       name = 'GREYLIST_CHECK',
       type = 'prefilter',
       callback = greylist_check,
       priority = 6,
-      flags = 'empty',
     })
   end
 end
index eb2e3ed82b67ee986f25c485c4eb633969444206..70339fd85062311dd760e61d7dcfca0eedf29698 100644 (file)
@@ -547,7 +547,7 @@ local function add_rbl(key, rbl)
     flags_tbl[#flags_tbl + 1] = 'nice'
   end
 
-  if not (rbl.dkim or rbl.emails) then
+  if not (rbl.dkim or rbl.emails or rbl.received) then
     flags_tbl[#flags_tbl + 1] = 'empty'
   end