summaryrefslogtreecommitdiff
path: root/librabbitmq/amqp_socket.c
diff options
context:
space:
mode:
authorAlan Antonuk <alan.antonuk@gmail.com>2012-06-06 14:42:19 -0400
committerAlan Antonuk <alan.antonuk@gmail.com>2012-06-06 18:00:31 -0400
commitd2462806af2a2f58a689211f5b381c3a3eea1e8e (patch)
treecfc7421b2d4bf97fd50941f87598b81aa081349d /librabbitmq/amqp_socket.c
parent815f5215dcf2f0fb487dc89f4ec4f1ef6bfb2ff2 (diff)
downloadrabbitmq-c-github-ask-d2462806af2a2f58a689211f5b381c3a3eea1e8e.tar.gz
Disable sigpipe on Mac OSXissue23
Use setsockopt(SO_NOSIGPIPE) on platforms that don't have MSG_NOSIGNAL and do have SO_NOSIGPIPE
Diffstat (limited to 'librabbitmq/amqp_socket.c')
-rw-r--r--librabbitmq/amqp_socket.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/librabbitmq/amqp_socket.c b/librabbitmq/amqp_socket.c
index 909f62d..2034f17 100644
--- a/librabbitmq/amqp_socket.c
+++ b/librabbitmq/amqp_socket.c
@@ -66,6 +66,14 @@ int amqp_open_socket(char const *hostname,
if (sockfd == -1)
return -amqp_socket_error();
+#ifdef DISABLE_SIGPIPE_WITH_SETSOCKOPT
+ if (0 != amqp_socket_setsockopt(sockfd, SOL_SOCKET, SO_NOSIGPIPE, &one,
+ sizeof(one)))
+ {
+ return -amqp_socket_error();
+ }
+#endif
+
if (amqp_socket_setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &one,
sizeof(one)) < 0
|| connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) < 0)