summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Wragg <david@rabbitmq.com>2010-07-11 14:08:34 +0100
committerDavid Wragg <david@rabbitmq.com>2010-07-11 14:08:34 +0100
commit47e7976d2d8af7880b89b4fdb324bc1314d3edfb (patch)
tree4bfb5570efaed64619ddaa1495210fec9e501ab8
parent7478207a21fc2e1e7aea5306762578f2992ccb42 (diff)
parent252e5ac851fe74ed6cbac0f456e2067efbdaac7c (diff)
downloadrabbitmq-c-github-ask-47e7976d2d8af7880b89b4fdb324bc1314d3edfb.tar.gz
Merge bug22931 into default (Default to TCP_NODELAY in librabbitmq)
-rw-r--r--librabbitmq/amqp_socket.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/librabbitmq/amqp_socket.c b/librabbitmq/amqp_socket.c
index a78056b..35e9c3d 100644
--- a/librabbitmq/amqp_socket.c
+++ b/librabbitmq/amqp_socket.c
@@ -65,6 +65,7 @@
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
+#include <netinet/tcp.h>
#include <assert.h>
@@ -74,6 +75,7 @@ int amqp_open_socket(char const *hostname,
int sockfd;
struct sockaddr_in addr;
struct hostent *he;
+ int one = 1; /* used as a buffer by setsockopt below */
he = gethostbyname(hostname);
if (he == NULL) {
@@ -89,7 +91,9 @@ int amqp_open_socket(char const *hostname,
return -errno;
}
- if (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
+ if ((setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) < 0) ||
+ (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) < 0))
+ {
int result = -errno;
close(sockfd);
return result;