diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-07-25 16:58:11 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-07-25 16:58:11 +0400 |
commit | 34ae83f0151a3fd31f4c045968defa39a2c40985 (patch) | |
tree | 3bb121336c76d16e3e5257c12a7905af0e04b70f /src/symbols_cache.c | |
parent | 4a8c30c78940a9153de23dc4d031273649e93cce (diff) | |
download | rspamd-34ae83f0151a3fd31f4c045968defa39a2c40985.tar.gz rspamd-34ae83f0151a3fd31f4c045968defa39a2c40985.zip |
* Add rspamd_log variable to lua plugins to access logging functions
* Each part in rspamd task now can have parent part
* Check for parts distance only for multipart/alternative subparts
* Do not check attachements even if they are text (but attached as file)
* Do not die if write (2) returned ENOSPACE while doing logging, turn on throttling mode instead (1 write try in a second)
* Add ability to turn on debug for specific symbols
* Add ability to configure dns timeouts and dns retransmits in config file
Diffstat (limited to 'src/symbols_cache.c')
-rw-r--r-- | src/symbols_cache.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/symbols_cache.c b/src/symbols_cache.c index f8257a716..ee931458e 100644 --- a/src/symbols_cache.c +++ b/src/symbols_cache.c @@ -582,6 +582,22 @@ check_negative_dynamic_item (struct worker_task *task, struct symbols_cache *cac return FALSE; } +static gboolean +check_debug_symbol (struct config_file *cfg, const char *symbol) +{ + GList *cur; + + cur = cfg->debug_symbols; + while (cur) { + if (strcmp (symbol, (const char *)cur->data) == 0) { + return TRUE; + } + cur = g_list_next (cur); + } + + return FALSE; +} + struct symbol_callback_data { enum { CACHE_STATE_NEGATIVE, @@ -770,7 +786,15 @@ call_symbol_callback (struct worker_task * task, struct symbols_cache * cache, g msg_warn ("gettimeofday failed: %s", strerror (errno)); } #endif - item->func (task, item->user_data); + if (G_UNLIKELY (check_debug_symbol (task->cfg, item->s->symbol))) { + rspamd_log_debug (); + item->func (task, item->user_data); + rspamd_log_nodebug (); + } + else { + item->func (task, item->user_data); + } + #ifdef HAVE_CLOCK_GETTIME # ifdef HAVE_CLOCK_PROCESS_CPUTIME_ID |