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;
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;
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;
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;
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;
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;
rspamd_fstring_free (session->hostname);
}
- rspamd_mempool_delete (priv->pool);
-
g_free (priv);
g_free (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)
{
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));
* @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);
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;
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;
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);