summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-04-22 03:05:39 +0200
committerLennart Poettering <lennart@poettering.net>2009-05-15 20:30:15 +0200
commit03d50fbd77481568bb2127d8b92e22d2cdc61ab8 (patch)
tree1eb1d695e3ee6739288cc61c9f9fc4491be9e4c7
parentff0a8993d4716cb7729f4a0ffab9ab242f82b242 (diff)
sysdeps-unix: if MSG_NOSIGNAL is available don't touch SIGPIPE by default
If we can use MSG_NOSIGNAL we don't have to play games with SIGPIPE
-rw-r--r--configure.in3
-rw-r--r--dbus/dbus-connection.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index 9e047eae..88d2164c 100644
--- a/configure.in
+++ b/configure.in
@@ -769,6 +769,9 @@ AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
dnl needed on darwin for NAME_MAX
AC_CHECK_HEADERS(sys/syslimits.h)
+dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
+AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
+
dnl check for flavours of varargs macros (test from GLib)
AC_MSG_CHECKING(for ISO C99 varargs macros in C)
AC_TRY_COMPILE([],[
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index 947c0afe..afa0ca6a 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -223,7 +223,11 @@ struct DBusPreallocatedSend
DBusList *counter_link; /**< Preallocated link in the resource counter */
};
+#ifdef HAVE_DECL_MSG_NOSIGNAL
+static dbus_bool_t _dbus_modify_sigpipe = FALSE;
+#else
static dbus_bool_t _dbus_modify_sigpipe = TRUE;
+#endif
/**
* Implementation details of DBusConnection. All fields are private.