]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Use non-blocking mode for systemd sockets
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 27 Jun 2016 09:54:27 +0000 (10:54 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 27 Jun 2016 09:55:07 +0000 (10:55 +0100)
Issue: #430
Reported by: @Twilek-de

rspamd.service
src/rspamd.c

index 9588d32b04316c626696874f294e199b782846d6..76b5637ce803d74b08cb1bfbcac4540afdc1ae70 100644 (file)
@@ -3,6 +3,8 @@ Description=rapid spam filtering system
 After=nss-lookup.target
 
 [Service]
+Type=forking
+NonBlocking=true
 ExecStart=/usr/bin/rspamd -c /etc/rspamd/rspamd.conf -f
 User=_rspamd
 RuntimeDirectory=rspamd
index cb8eb18063ec3278adc6fc3b0cae9925e5a6ba83..8757f07e53ac164242b68f8d1287525ae048b93e 100644 (file)
@@ -405,9 +405,13 @@ systemd_get_socket (struct rspamd_main *rspamd_main, gint number)
                                return NULL;
                        }
                        flags = fcntl (sock, F_GETFD);
+
                        if (flags != -1) {
                                (void)fcntl (sock, F_SETFD, flags | FD_CLOEXEC);
                        }
+
+                       rspamd_socket_nonblocking (sock);
+
                        result = g_list_prepend (result, GINT_TO_POINTER (sock));
                }
                else if (num_passed <= number) {