diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2013-07-20 18:42:29 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2013-07-20 18:42:29 +0100 |
commit | 8abd76b18ff391376fff2f6652a7f9711d7766d2 (patch) | |
tree | f0467d461f4fccb1c2dfe30b0f19ad4f15d98129 /src/lua_worker.c | |
parent | 7522608cb80dc227c05f4e254ba13e9f86d7a07f (diff) | |
download | rspamd-8abd76b18ff391376fff2f6652a7f9711d7766d2.tar.gz rspamd-8abd76b18ff391376fff2f6652a7f9711d7766d2.zip |
Allow listening on multiply addresses.
Now rspamd can listen on multiply ipv4/ipv6 addresses.
Removed legacy workers (lmtp, kvstorage) as they are never used
in production.
Try to unify workers initialization.
Diffstat (limited to 'src/lua_worker.c')
-rw-r--r-- | src/lua_worker.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/src/lua_worker.c b/src/lua_worker.c index 0cadb7eb2..6262af85b 100644 --- a/src/lua_worker.c +++ b/src/lua_worker.c @@ -53,7 +53,8 @@ worker_t lua_worker = { TRUE, /* Has socket */ FALSE, /* Non unique */ FALSE, /* Non threaded */ - TRUE /* Killable */ + TRUE, /* Killable */ + SOCK_STREAM /* TCP socket */ }; /* @@ -302,7 +303,7 @@ sigusr2_handler (gint fd, short what, void *arg) tv.tv_usec = 0; event_del (&worker->sig_ev_usr1); event_del (&worker->sig_ev_usr2); - event_del (&worker->bind_ev); + worker_stop_accept (worker); msg_info ("worker's shutdown is pending in %d sec", SOFT_SHUTDOWN_TIME); event_loopexit (&tv); } @@ -439,7 +440,6 @@ init_lua_worker (void) void start_lua_worker (struct rspamd_worker *worker) { - struct sigaction signals; struct rspamd_lua_worker_ctx *ctx = worker->ctx, **pctx; lua_State *L; @@ -448,18 +448,12 @@ start_lua_worker (struct rspamd_worker *worker) monstartup ((u_long) & _start, (u_long) & etext); #endif - gperf_profiler_init (worker->srv->cfg, "lua_worker"); - - worker->srv->pid = getpid (); - - ctx->ev_base = event_init (); + ctx->ev_base = prepare_worker (worker, "lua_worker", sig_handler, lua_accept_socket); L = worker->srv->cfg->lua_state; ctx->L = L; ctx->cfg = worker->srv->cfg; - init_signals (&signals, sig_handler); - sigprocmask (SIG_UNBLOCK, &signals.sa_mask, NULL); /* SIGUSR2 handler */ signal_set (&worker->sig_ev_usr2, SIGUSR2, sigusr2_handler, (void *) worker); @@ -471,12 +465,6 @@ start_lua_worker (struct rspamd_worker *worker) event_base_set (ctx->ev_base, &worker->sig_ev_usr1); signal_add (&worker->sig_ev_usr1, NULL); - /* Accept event */ - event_set (&worker->bind_ev, worker->cf->listen_sock, EV_READ | EV_PERSIST, - lua_accept_socket, (void *) worker); - event_base_set (ctx->ev_base, &worker->bind_ev); - event_add (&worker->bind_ev, NULL); - ctx->resolver = dns_resolver_init (ctx->ev_base, worker->srv->cfg); /* Open worker's lib */ |