]> source.dussan.org Git - rspamd.git/commitdiff
Do not enable accept event with no handler
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 25 Nov 2015 15:59:48 +0000 (15:59 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 25 Nov 2015 15:59:48 +0000 (15:59 +0000)
src/libserver/worker_util.c

index b8b014a90c58744e27de295b15a51f5b5a7aeff2..c40c4f73f808102feebe6a16fcec44b490fa990c 100644 (file)
@@ -250,19 +250,21 @@ rspamd_prepare_worker (struct rspamd_worker *worker, const char *name,
        rspamd_control_worker_add_default_handler (worker, ev_base);
 
        /* Accept all sockets */
-       cur = worker->cf->listen_socks;
-       while (cur) {
-               listen_socket = GPOINTER_TO_INT (cur->data);
-               if (listen_socket != -1) {
-                       accept_event = g_slice_alloc0 (sizeof (struct event));
-                       event_set (accept_event, listen_socket, EV_READ | EV_PERSIST,
-                               accept_handler, worker);
-                       event_base_set (ev_base, accept_event);
-                       event_add (accept_event, NULL);
-                       worker->accept_events = g_list_prepend (worker->accept_events,
-                                       accept_event);
+       if (accept_handler) {
+               cur = worker->cf->listen_socks;
+               while (cur) {
+                       listen_socket = GPOINTER_TO_INT (cur->data);
+                       if (listen_socket != -1) {
+                               accept_event = g_slice_alloc0 (sizeof (struct event));
+                               event_set (accept_event, listen_socket, EV_READ | EV_PERSIST,
+                                               accept_handler, worker);
+                               event_base_set (ev_base, accept_event);
+                               event_add (accept_event, NULL);
+                               worker->accept_events = g_list_prepend (worker->accept_events,
+                                               accept_event);
+                       }
+                       cur = g_list_next (cur);
                }
-               cur = g_list_next (cur);
        }
 
        return ev_base;