summaryrefslogtreecommitdiff
path: root/testing/syslog-ng/non-blocking-systemd-fds.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/syslog-ng/non-blocking-systemd-fds.patch')
-rw-r--r--testing/syslog-ng/non-blocking-systemd-fds.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/testing/syslog-ng/non-blocking-systemd-fds.patch b/testing/syslog-ng/non-blocking-systemd-fds.patch
new file mode 100644
index 000000000..bd056088b
--- /dev/null
+++ b/testing/syslog-ng/non-blocking-systemd-fds.patch
@@ -0,0 +1,32 @@
+From 2f214c4f87d944aa28d53e331a67b1fd88d9840f Mon Sep 17 00:00:00 2001
+From: Balazs Scheidler <bazsi@balabit.hu>
+Date: Wed, 22 Jun 2011 12:50:53 +0200
+Subject: [PATCH] systemd: make sure the acquired fd is in non-blocking mode
+
+The fd acquired from systemd is in blocking mode, and syslog-ng
+didn't explicitly set it to non-blocking, causing syslog-ng
+to stall. This patch changes that, explicitly enables
+O_NONBLOCK and O_CLOEXEC on systemd acquired fds.
+
+Reported-By: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+Signed-off-by: Balazs Scheidler <bazsi@balabit.hu>
+---
+ modules/afsocket/afunix.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/modules/afsocket/afunix.c b/modules/afsocket/afunix.c
+index cd9c205..9a4e37b 100644
+--- a/modules/afsocket/afunix.c
++++ b/modules/afsocket/afunix.c
+@@ -108,6 +108,8 @@ afunix_sd_acquire_socket(AFSocketSourceDriver *s, gint *result_fd)
+
+ if (*result_fd != -1)
+ {
++ g_fd_set_nonblock(*result_fd, TRUE);
++ g_fd_set_cloexec(*result_fd, TRUE);
+ msg_verbose("Acquired systemd socket",
+ evt_tag_str("filename", self->filename),
+ evt_tag_int("systemd-sock-fd", *result_fd),
+--
+1.7.5.4
+