]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Some fixes in surbl module events processing
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 24 Oct 2018 17:26:07 +0000 (18:26 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 24 Oct 2018 17:26:07 +0000 (18:26 +0100)
src/libserver/symbols_cache.c
src/plugins/surbl.c

index c4acf1f84f22a4f22e3e1798ed665b37eeff7909..960171e1ca908880498627fa22a689ce7c544cb6 100644 (file)
@@ -2666,8 +2666,8 @@ guint
 rspamd_symcache_item_async_inc (struct rspamd_task *task,
                                                                struct rspamd_symcache_item *item)
 {
-       msg_debug_cache_task ("increase async events counter for %s = %d + 1",
-                       item->symbol, item->async_events);
+       msg_debug_cache_task ("increase async events counter for %s(%d) = %d + 1",
+                       item->symbol, item->id, item->async_events);
        return ++item->async_events;
 }
 
@@ -2675,8 +2675,8 @@ guint
 rspamd_symcache_item_async_dec (struct rspamd_task *task,
                                                                struct rspamd_symcache_item *item)
 {
-       msg_debug_cache_task ("decrease async events counter for %s = %d - 1",
-                       item->symbol, item->async_events);
+       msg_debug_cache_task ("decrease async events counter for %s(%d) = %d - 1",
+                       item->symbol, item->id, item->async_events);
        g_assert (item->async_events > 0);
 
        return --item->async_events;
index 52bfe42ca4116377d52048e01e10f988648a508d..8070bfb239bbb8427cf62edfdb0974fe433ed9ae 100644 (file)
@@ -1574,6 +1574,10 @@ free_redirector_session (void *ud)
 {
        struct redirector_param *param = (struct redirector_param *)ud;
 
+       if (param->item) {
+               rspamd_symcache_item_async_dec_check (param->task, param->item);
+       }
+
        rspamd_http_connection_unref (param->conn);
        close (param->sock);
 }
@@ -1682,6 +1686,7 @@ register_redirector_call (struct rspamd_url *url, struct rspamd_task *task,
                        msg_info_surbl ("<%s> cannot create tcp socket failed: %s",
                                        task->message_id,
                                        strerror (errno));
+
                        return;
                }
 
@@ -1710,6 +1715,10 @@ register_redirector_call (struct rspamd_url *url, struct rspamd_task *task,
                                g_quark_from_static_string ("surbl"));
                param->item = rspamd_symbols_cache_get_cur_item (task);
 
+               if (param->item) {
+                       rspamd_symcache_item_async_inc (param->task, param->item);
+               }
+
                rspamd_http_connection_write_message (param->conn, msg, NULL,
                                NULL, param, s, timeout, task->ev_base);
 
@@ -1904,7 +1913,7 @@ surbl_test_url (struct rspamd_task *task,
        param->tree = g_hash_table_new (rspamd_strcase_hash, rspamd_strcase_equal);
        param->ctx = surbl_module_ctx;
        param->item = item;
-       rspamd_symcache_item_async_inc (task, item);
+
        rspamd_mempool_add_destructor (task->task_pool,
                (rspamd_mempool_destruct_t)g_hash_table_unref,
                param->tree);