summaryrefslogtreecommitdiffstats
path: root/src/controller.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-01-01 18:58:01 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-01-01 18:58:01 +0000
commit1f58c5fa9805a404c9a942f110589fce464825df (patch)
tree90708b845ad6139d0b9214a63fd255bf75462af6 /src/controller.c
parent60383ec549918fe5f0a1bbdda09fd74abac56e09 (diff)
downloadrspamd-1f58c5fa9805a404c9a942f110589fce464825df.tar.gz
rspamd-1f58c5fa9805a404c9a942f110589fce464825df.zip
[Project] Initialize language detector
Diffstat (limited to 'src/controller.c')
-rw-r--r--src/controller.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/controller.c b/src/controller.c
index 8e22850e6..1367c819b 100644
--- a/src/controller.c
+++ b/src/controller.c
@@ -28,6 +28,7 @@
#include "fuzzy_wire.h"
#include "unix-std.h"
#include "utlist.h"
+#include "libmime/lang_detection.h"
#include <math.h>
/* 60 seconds for worker's IO */
@@ -179,6 +180,7 @@ struct rspamd_controller_worker_ctx {
struct event *rrd_event;
struct rspamd_rrd_file *rrd;
struct event save_stats_event;
+ struct rspamd_lang_detector *lang_det;
};
struct rspamd_controller_plugin_cbdata {
@@ -1482,7 +1484,7 @@ rspamd_controller_handle_lua_history (lua_State *L,
if (lua_isfunction (L, -1)) {
task = rspamd_task_new (session->ctx->worker, session->cfg,
- session->pool);
+ session->pool, ctx->lang_det);
task->resolver = ctx->resolver;
task->ev_base = ctx->ev_base;
@@ -1780,7 +1782,8 @@ rspamd_controller_handle_lua (struct rspamd_http_connection_entry *conn_ent,
return 0;
}
- task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool);
+ task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool,
+ ctx->lang_det);
task->resolver = ctx->resolver;
task->ev_base = ctx->ev_base;
@@ -1963,7 +1966,8 @@ rspamd_controller_handle_learn_common (
return 0;
}
- task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool);
+ task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool,
+ session->ctx->lang_det);
task->resolver = ctx->resolver;
task->ev_base = ctx->ev_base;
@@ -2063,7 +2067,8 @@ rspamd_controller_handle_scan (struct rspamd_http_connection_entry *conn_ent,
return 0;
}
- task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool);
+ task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool,
+ ctx->lang_det);
task->ev_base = session->ctx->ev_base;
task->resolver = ctx->resolver;
@@ -2541,9 +2546,10 @@ rspamd_controller_handle_stat_common (
rspamd_mempool_stat (&mem_st);
memcpy (&stat_copy, session->ctx->worker->srv->stat, sizeof (stat_copy));
stat = &stat_copy;
- task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool);
-
ctx = session->ctx;
+
+ task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool,
+ ctx->lang_det);
task->resolver = ctx->resolver;
task->ev_base = ctx->ev_base;
cbdata = rspamd_mempool_alloc0 (session->pool, sizeof (*cbdata));
@@ -2905,7 +2911,8 @@ rspamd_controller_handle_lua_plugin (struct rspamd_http_connection_entry *conn_e
return 0;
}
- task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool);
+ task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool,
+ ctx->lang_det);
task->resolver = ctx->resolver;
task->ev_base = ctx->ev_base;
@@ -3622,6 +3629,7 @@ start_controller_worker (struct rspamd_worker *worker)
g_ptr_array_add (worker->finish_actions,
(gpointer)rspamd_controller_on_terminate);
rspamd_controller_load_saved_stats (ctx);
+ ctx->lang_det = ctx->cfg->lang_det;
/* RRD collector */
if (ctx->cfg->rrd_file && worker->index == 0) {