diff options
| author | David Wragg <david@rabbitmq.com> | 2010-07-11 14:08:34 +0100 |
|---|---|---|
| committer | David Wragg <david@rabbitmq.com> | 2010-07-11 14:08:34 +0100 |
| commit | 47e7976d2d8af7880b89b4fdb324bc1314d3edfb (patch) | |
| tree | 4bfb5570efaed64619ddaa1495210fec9e501ab8 | |
| parent | 7478207a21fc2e1e7aea5306762578f2992ccb42 (diff) | |
| parent | 252e5ac851fe74ed6cbac0f456e2067efbdaac7c (diff) | |
| download | rabbitmq-c-github-ask-47e7976d2d8af7880b89b4fdb324bc1314d3edfb.tar.gz | |
Merge bug22931 into default (Default to TCP_NODELAY in librabbitmq)
| -rw-r--r-- | librabbitmq/amqp_socket.c | 6 |
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; |
