summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--librabbitmq/amqp_socket.c12
1 files 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;