Browse Source

[Fix] Fix symbols registration and execution

tags/1.3.0
Vsevolod Stakhov 7 years ago
parent
commit
eea4d93435
2 changed files with 21 additions and 10 deletions
  1. 1
    1
      src/libserver/symbols_cache.c
  2. 20
    9
      src/lua/lua_config.c

+ 1
- 1
src/libserver/symbols_cache.c View File

@@ -1125,7 +1125,7 @@ rspamd_symbols_cache_check_symbol (struct rspamd_task *task,
gboolean check = TRUE;
const gdouble slow_diff_limit = 1e5;

if (item->type & (SYMBOL_TYPE_NORMAL|SYMBOL_TYPE_CALLBACK)) {
if (item->func) {

g_assert (item->func != NULL);
/* Check has been started */

+ 20
- 9
src/lua/lua_config.c View File

@@ -783,13 +783,24 @@ rspamd_register_symbol_fromlua (lua_State *L,
}
}

ret = rspamd_symbols_cache_add_symbol (cfg->cache,
name,
priority,
lua_metric_symbol_callback,
cd,
type,
parent);
if (ref != -1) {
ret = rspamd_symbols_cache_add_symbol (cfg->cache,
name,
priority,
lua_metric_symbol_callback,
cd,
type,
parent);
}
else {
ret = rspamd_symbols_cache_add_symbol (cfg->cache,
name,
priority,
NULL,
cd,
type,
parent);
}
rspamd_mempool_add_destructor (cfg->cfg_pool,
(rspamd_mempool_destruct_t)lua_destroy_cfg_symbol,
cd);
@@ -924,10 +935,10 @@ lua_parse_symbol_type (const gchar *str)
ret = SYMBOL_TYPE_NORMAL;
}
else if (strcmp (str, "prefilter") == 0) {
ret = SYMBOL_TYPE_PREFILTER;
ret = SYMBOL_TYPE_PREFILTER|SYMBOL_TYPE_GHOST;
}
else if (strcmp (str, "postfilter") == 0) {
ret = SYMBOL_TYPE_POSTFILTER;
ret = SYMBOL_TYPE_POSTFILTER|SYMBOL_TYPE_GHOST;
}
else {
msg_warn ("bad type: %s", str);

Loading…
Cancel
Save