aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Schink <dev@zapb.de>2020-08-12 01:33:42 +0200
committerMarc Schink <dev@zapb.de>2021-01-19 11:59:17 +0100
commit91e282fadcc78fb587ba3a68e113e87329184336 (patch)
tree63c9c817e63dc8dcc4f1e481f52b2f7ab33cd00d
parent533a29b0096a84fdcfb3e06ddf4a8c16b9e4a809 (diff)
downloadlibjaylink-91e282fadcc78fb587ba3a68e113e87329184336.zip
libjaylink-91e282fadcc78fb587ba3a68e113e87329184336.tar.gz
libjaylink-91e282fadcc78fb587ba3a68e113e87329184336.tar.bz2
transport/tcp: Make use of socket_connect()
Signed-off-by: Marc Schink <dev@zapb.de>
-rw-r--r--libjaylink/transport_tcp.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/libjaylink/transport_tcp.c b/libjaylink/transport_tcp.c
index 1ba978a..dc38d8f 100644
--- a/libjaylink/transport_tcp.c
+++ b/libjaylink/transport_tcp.c
@@ -55,6 +55,8 @@
/** Buffer size in bytes. */
#define BUFFER_SIZE 2048
+/** Timeout for connection establishment in milliseconds. */
+#define CONNECT_TIMEOUT 5000
/** Timeout of a receive operation in milliseconds. */
#define RECV_TIMEOUT 5000
/** Timeout of a send operation in milliseconds. */
@@ -267,8 +269,16 @@ JAYLINK_PRIV int transport_tcp_open(struct jaylink_device_handle *devh)
if (sock < 0)
continue;
- if (!connect(sock, info->ai_addr, info->ai_addrlen))
+ ret = socket_connect(sock, info->ai_addr, info->ai_addrlen,
+ CONNECT_TIMEOUT);
+
+ if (ret == JAYLINK_ERR_TIMEOUT) {
+ freeaddrinfo(info);
+ cleanup_handle(devh);
+ return JAYLINK_ERR_TIMEOUT;
+ } else if (ret == JAYLINK_OK) {
break;
+ }
socket_close(sock);
sock = -1;