diff options
Diffstat (limited to 'librabbitmq/amqp_socket.c')
-rw-r--r-- | librabbitmq/amqp_socket.c | 12 |
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; |