aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua/lua_classifier.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-10-06 18:59:25 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-10-06 18:59:25 +0100
commit37ad53dee0c78deaaef3cf15212a081c8b460bed (patch)
treedbb465f4a3e1d156ca8b7c34d3fc44b3960908b1 /src/lua/lua_classifier.c
parent1dfa09dd11af4aad772935508cb0d234484c7d86 (diff)
downloadrspamd-37ad53dee0c78deaaef3cf15212a081c8b460bed.tar.gz
rspamd-37ad53dee0c78deaaef3cf15212a081c8b460bed.zip
[Rework] Remove legacy code never used for classifiers
Diffstat (limited to 'src/lua/lua_classifier.c')
-rw-r--r--src/lua/lua_classifier.c191
1 files changed, 0 insertions, 191 deletions
diff --git a/src/lua/lua_classifier.c b/src/lua/lua_classifier.c
index aaf3888df..488a9d477 100644
--- a/src/lua/lua_classifier.c
+++ b/src/lua/lua_classifier.c
@@ -17,21 +17,16 @@
#include "cfg_file.h"
/* Classifier methods */
-LUA_FUNCTION_DEF (classifier, register_pre_callback);
-LUA_FUNCTION_DEF (classifier, register_post_callback);
LUA_FUNCTION_DEF (classifier, get_statfiles);
LUA_FUNCTION_DEF (classifier, get_statfile_by_label);
static const struct luaL_reg classifierlib_m[] = {
- LUA_INTERFACE_DEF (classifier, register_pre_callback),
- LUA_INTERFACE_DEF (classifier, register_post_callback),
LUA_INTERFACE_DEF (classifier, get_statfiles),
LUA_INTERFACE_DEF (classifier, get_statfile_by_label),
{"__tostring", rspamd_lua_class_tostring},
{NULL, NULL}
};
-
LUA_FUNCTION_DEF (statfile, get_symbol);
LUA_FUNCTION_DEF (statfile, get_label);
LUA_FUNCTION_DEF (statfile, is_spam);
@@ -46,11 +41,6 @@ static const struct luaL_reg statfilelib_m[] = {
{NULL, NULL}
};
-struct classifier_callback_data {
- lua_State *L;
- const gchar *name;
-};
-
static struct rspamd_statfile_config * lua_check_statfile (lua_State * L);
/* Classifier implementation */
@@ -64,187 +54,6 @@ lua_check_classifier (lua_State * L)
return ud ? *((struct rspamd_classifier_config **)ud) : NULL;
}
-static GList *
-call_classifier_pre_callback (struct rspamd_classifier_config *ccf,
- struct rspamd_task *task,
- lua_State *L,
- gboolean is_learn,
- gboolean is_spam)
-{
- struct rspamd_classifier_config **pccf;
- struct rspamd_task **ptask;
- struct rspamd_statfile_config **pst;
- GList *res = NULL;
-
- pccf = lua_newuserdata (L, sizeof (struct rspamd_classifier_config *));
- rspamd_lua_setclass (L, "rspamd{classifier}", -1);
- *pccf = ccf;
-
- ptask = lua_newuserdata (L, sizeof (struct rspamd_task *));
- rspamd_lua_setclass (L, "rspamd{task}", -1);
- *ptask = task;
-
- lua_pushboolean (L, is_learn);
- lua_pushboolean (L, is_spam);
-
- if (lua_pcall (L, 4, 1, 0) != 0) {
- msg_warn_task ("error running pre classifier callback %s",
- lua_tostring (L, -1));
- lua_pop (L, 1);
- }
- else {
- if (lua_istable (L, -1)) {
- lua_pushnil (L);
- while (lua_next (L, -2)) {
- pst = rspamd_lua_check_udata (L, -1, "rspamd{statfile}");
- if (pst) {
- res = g_list_prepend (res, *pst);
- }
- lua_pop (L, 1);
- }
- }
- lua_pop (L, 1);
- }
-
- return res;
-}
-
-/* Return list of statfiles that should be checked for this message */
-GList *
-rspamd_lua_call_cls_pre_callbacks (struct rspamd_classifier_config *ccf,
- struct rspamd_task *task,
- gboolean is_learn,
- gboolean is_spam,
- lua_State *L)
-{
- GList *res = NULL, *cur;
- struct classifier_callback_data *cd;
-
-
- /* Go throught all callbacks and call them, appending results to list */
- cur = g_list_first (ccf->pre_callbacks);
- while (cur) {
- cd = cur->data;
- lua_getglobal (L, cd->name);
-
- res =
- g_list_concat (res,
- call_classifier_pre_callback (ccf, task, L, is_learn, is_spam));
-
- cur = g_list_next (cur);
- }
-
- if (res == NULL) {
- /* Check function from global table 'classifiers' */
- lua_getglobal (L, "classifiers");
- if (lua_istable (L, -1)) {
- lua_pushstring (L, ccf->name);
- lua_gettable (L, -2);
- /* Function is now on top */
- if (lua_isfunction (L, -1)) {
- res = call_classifier_pre_callback (ccf,
- task,
- L,
- is_learn,
- is_spam);
- }
- lua_pop (L, 1);
- }
- lua_pop (L, 1);
- }
-
- return res;
-}
-
-/* Return result mark for statfile */
-double
-rspamd_lua_call_cls_post_callbacks (struct rspamd_classifier_config *ccf,
- struct rspamd_task *task,
- double in,
- lua_State *L)
-{
- struct classifier_callback_data *cd;
- struct rspamd_classifier_config **pccf;
- struct rspamd_task **ptask;
- double out = in;
- GList *cur;
-
- /* Go throught all callbacks and call them, appending results to list */
- cur = g_list_first (ccf->pre_callbacks);
- while (cur) {
- cd = cur->data;
- lua_getglobal (L, cd->name);
-
- pccf = lua_newuserdata (L, sizeof (struct rspamd_classifier_config *));
- rspamd_lua_setclass (L, "rspamd{classifier}", -1);
- *pccf = ccf;
-
- ptask = lua_newuserdata (L, sizeof (struct rspamd_task *));
- rspamd_lua_setclass (L, "rspamd{task}", -1);
- *ptask = task;
-
- lua_pushnumber (L, out);
-
- if (lua_pcall (L, 3, 1, 0) != 0) {
- msg_warn_task ("error running function %s: %s", cd->name,
- lua_tostring (L, -1));
- lua_pop (L, 1);
- }
- else {
- if (lua_isnumber (L, 1)) {
- out = lua_tonumber (L, 1);
- }
- lua_pop (L, 1);
- }
-
- cur = g_list_next (cur);
- }
-
- return out;
-
-}
-
-static gint
-lua_classifier_register_pre_callback (lua_State *L)
-{
- struct rspamd_classifier_config *ccf = lua_check_classifier (L);
- struct classifier_callback_data *cd;
- const gchar *name;
-
- if (ccf) {
- name = luaL_checkstring (L, 2);
- if (name) {
- cd = g_malloc (sizeof (struct classifier_callback_data));
- cd->name = g_strdup (name);
- cd->L = L;
- ccf->pre_callbacks = g_list_prepend (ccf->pre_callbacks, cd);
- }
- }
-
- return 0;
-
-}
-
-static gint
-lua_classifier_register_post_callback (lua_State *L)
-{
- struct rspamd_classifier_config *ccf = lua_check_classifier (L);
- struct classifier_callback_data *cd;
- const gchar *name;
-
- if (ccf) {
- name = luaL_checkstring (L, 2);
- if (name) {
- cd = g_malloc (sizeof (struct classifier_callback_data));
- cd->name = g_strdup (name);
- cd->L = L;
- ccf->pre_callbacks = g_list_prepend (ccf->pre_callbacks, cd);
- }
- }
-
- return 0;
-}
-
/* Return table of statfiles indexed by name */
static gint
lua_classifier_get_statfiles (lua_State *L)