summaryrefslogtreecommitdiffstats
path: root/src/webui.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2013-07-20 18:42:29 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2013-07-20 18:42:29 +0100
commit8abd76b18ff391376fff2f6652a7f9711d7766d2 (patch)
treef0467d461f4fccb1c2dfe30b0f19ad4f15d98129 /src/webui.c
parent7522608cb80dc227c05f4e254ba13e9f86d7a07f (diff)
downloadrspamd-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/webui.c')
-rw-r--r--src/webui.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/webui.c b/src/webui.c
index 0260632fb..eb9cf8ba8 100644
--- a/src/webui.c
+++ b/src/webui.c
@@ -103,7 +103,8 @@ worker_t webui_worker = {
TRUE, /* Has socket */
TRUE, /* Non unique */
FALSE, /* Non threaded */
- TRUE /* Killable */
+ TRUE, /* Killable */
+ SOCK_STREAM /* TCP socket */
};
#if defined(LIBEVENT_EVHTTP) || (defined(_EVENT_NUMERIC_VERSION) && (_EVENT_NUMERIC_VERSION > 0x02010000))
@@ -181,7 +182,6 @@ 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);
msg_info ("worker's shutdown is pending in %d sec", SOFT_SHUTDOWN_TIME);
event_loopexit (&tv);
}
@@ -1741,6 +1741,7 @@ start_webui_worker (struct rspamd_worker *worker)
{
struct sigaction signals;
struct rspamd_webui_worker_ctx *ctx = worker->ctx;
+ GList *cur;
#ifdef WITH_PROFILER
extern void _start (void), etext (void);
@@ -1773,7 +1774,12 @@ start_webui_worker (struct rspamd_worker *worker)
ctx->worker = worker;
/* Accept event */
ctx->http = evhttp_new (ctx->ev_base);
- evhttp_accept_socket (ctx->http, worker->cf->listen_sock);
+
+ cur = worker->cf->listen_socks;
+ while (cur) {
+ evhttp_accept_socket (ctx->http, GPOINTER_TO_INT (cur->data));
+ cur = g_list_next (cur);
+ }
if (ctx->use_ssl) {
#ifdef HAVE_WEBUI_SSL