]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Dmarc_report: Try to escape from the coroutines curse
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 9 Aug 2021 15:38:07 +0000 (16:38 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 9 Aug 2021 15:38:07 +0000 (16:38 +0100)
lualib/rspamadm/dmarc_report.lua

index 062e8070e8e05189909c412025a0cddae174ea0b..acc941400cb57e84444ace0c60b673e657552851 100644 (file)
@@ -685,14 +685,19 @@ local function handler(args)
   local function finish_cb(nsuccess, nfail)
     if not opts.no_opt then
       lua_util.debugm(N, 'set last report date to %s', os.time())
+      -- Hack to avoid coroutines + async functions mess: we use async redis call here
+      redis_attrs.callback = function()
+        logger.messagex('Reporting collection has finished %s dates processed, %s reports: %s completed, %s failed',
+            ndates, nreports, nsuccess, nfail)
+      end
       lua_redis.request(redis_params, redis_attrs,
           {'SETEX', 'rspamd_dmarc_last_collection', dmarc_settings.reporting.keys_expire,
            tostring(os.time())})
+    else
+      logger.messagex('Reporting collection has finished %s dates processed, %s reports: %s completed, %s failed',
+          ndates, nreports, nsuccess, nfail)
     end
 
-    logger.messagex('Reporting collection has finished %s dates processed, %s reports: %s completed, %s failed',
-        ndates, nreports, nsuccess, nfail)
-
     pool:destroy()
   end
   send_reports_by_smtp(opts, all_reports, finish_cb)