From d2fb070fe6e36075de389f59729ff4b022eed9a0 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 2 Jul 2010 17:05:57 +1200 Subject: Turn on TCP_NODELAY by default. --- librabbitmq/amqp_socket.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/librabbitmq/amqp_socket.c b/librabbitmq/amqp_socket.c index a78056b..d62f744 100644 --- a/librabbitmq/amqp_socket.c +++ b/librabbitmq/amqp_socket.c @@ -65,6 +65,7 @@ #include #include #include +#include #include @@ -89,6 +90,15 @@ int amqp_open_socket(char const *hostname, return -errno; } + { + int one = 1; + if (setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) < 0) { + int result = -errno; + close(sockfd); + return result; + } + } + if (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) < 0) { int result = -errno; close(sockfd); -- cgit v1.2.1 From 252e5ac851fe74ed6cbac0f456e2067efbdaac7c Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sun, 11 Jul 2010 14:11:11 +1200 Subject: Dedup error handling code --- librabbitmq/amqp_socket.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/librabbitmq/amqp_socket.c b/librabbitmq/amqp_socket.c index d62f744..35e9c3d 100644 --- a/librabbitmq/amqp_socket.c +++ b/librabbitmq/amqp_socket.c @@ -75,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) { @@ -90,16 +91,9 @@ int amqp_open_socket(char const *hostname, return -errno; } + if ((setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) < 0) || + (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) < 0)) { - int one = 1; - if (setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) < 0) { - int result = -errno; - close(sockfd); - return result; - } - } - - if (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) < 0) { int result = -errno; close(sockfd); return result; -- cgit v1.2.1