@@ -1465,7 +1465,7 @@ rspamd_controller_handle_lua_history (lua_State *L, | |||
if (lua_isfunction (L, -1)) { | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, | |||
NULL); | |||
session->pool); | |||
task->resolver = ctx->resolver; | |||
task->ev_base = ctx->ev_base; | |||
@@ -1763,7 +1763,7 @@ rspamd_controller_handle_lua (struct rspamd_http_connection_entry *conn_ent, | |||
return 0; | |||
} | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, NULL); | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool); | |||
task->resolver = ctx->resolver; | |||
task->ev_base = ctx->ev_base; | |||
@@ -1946,7 +1946,7 @@ rspamd_controller_handle_learn_common ( | |||
return 0; | |||
} | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, NULL); | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool); | |||
task->resolver = ctx->resolver; | |||
task->ev_base = ctx->ev_base; | |||
@@ -2046,7 +2046,7 @@ rspamd_controller_handle_scan (struct rspamd_http_connection_entry *conn_ent, | |||
return 0; | |||
} | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, NULL); | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool); | |||
task->ev_base = session->ctx->ev_base; | |||
task->resolver = ctx->resolver; | |||
@@ -2544,7 +2544,7 @@ 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, NULL); | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool); | |||
ctx = session->ctx; | |||
task->resolver = ctx->resolver; | |||
@@ -2878,7 +2878,7 @@ rspamd_controller_handle_lua_plugin (struct rspamd_http_connection_entry *conn_e | |||
return 0; | |||
} | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, NULL); | |||
task = rspamd_task_new (session->ctx->worker, session->cfg, session->pool); | |||
task->resolver = ctx->resolver; | |||
task->ev_base = ctx->ev_base; |
@@ -180,8 +180,6 @@ rspamd_milter_session_dtor (struct rspamd_milter_session *session) | |||
rspamd_fstring_free (session->hostname); | |||
} | |||
rspamd_mempool_delete (priv->pool); | |||
g_free (priv); | |||
g_free (session); | |||
} | |||
@@ -959,6 +957,7 @@ rspamd_milter_handle_session (struct rspamd_milter_session *session, | |||
gboolean | |||
rspamd_milter_handle_socket (gint fd, const struct timeval *tv, | |||
rspamd_mempool_t *pool, | |||
struct event_base *ev_base, rspamd_milter_finish finish_cb, | |||
rspamd_milter_error error_cb, void *ud) | |||
{ | |||
@@ -983,7 +982,7 @@ rspamd_milter_handle_socket (gint fd, const struct timeval *tv, | |||
priv->parser.buf = rspamd_fstring_sized_new (RSPAMD_MILTER_MESSAGE_CHUNK + 5); | |||
priv->ev_base = ev_base; | |||
priv->state = RSPAMD_MILTER_READ_MORE; | |||
priv->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), "milter"); | |||
priv->pool = pool; | |||
if (tv) { | |||
memcpy (&priv->tv, tv, sizeof (*tv)); |
@@ -68,6 +68,7 @@ typedef void (*rspamd_milter_error) (gint fd, | |||
* @return | |||
*/ | |||
gboolean rspamd_milter_handle_socket (gint fd, const struct timeval *tv, | |||
rspamd_mempool_t *pool, | |||
struct event_base *ev_base, rspamd_milter_finish finish_cb, | |||
rspamd_milter_error error_cb, void *ud); | |||
@@ -1596,7 +1596,8 @@ rspamd_proxy_self_scan (struct rspamd_proxy_session *session) | |||
gsize len; | |||
msg = session->client_message; | |||
task = rspamd_task_new (session->worker, session->ctx->cfg, NULL); | |||
task = rspamd_task_new (session->worker, session->ctx->cfg, | |||
session->pool); | |||
task->flags |= RSPAMD_TASK_FLAG_MIME; | |||
task->sock = -1; | |||
@@ -1941,7 +1942,8 @@ proxy_accept_socket (gint fd, short what, void *arg) | |||
session->client_addr = addr; | |||
session->mirror_conns = g_ptr_array_sized_new (ctx->mirrors->len); | |||
session->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), "proxy"); | |||
session->pool = rspamd_mempool_new (rspamd_mempool_suggest_size (), | |||
"proxy"); | |||
session->ctx = ctx; | |||
session->worker = worker; | |||
@@ -1973,7 +1975,9 @@ proxy_accept_socket (gint fd, short what, void *arg) | |||
rspamd_inet_address_to_string (addr), | |||
rspamd_inet_address_get_port (addr)); | |||
rspamd_milter_handle_socket (nfd, &ctx->io_tv, ctx->ev_base, | |||
rspamd_milter_handle_socket (nfd, &ctx->io_tv, | |||
session->pool, | |||
ctx->ev_base, | |||
proxy_milter_finish_handler, | |||
proxy_milter_error_handler, | |||
session); |