diff options
author | Marc Schink <dev@zapb.de> | 2020-08-12 01:33:42 +0200 |
---|---|---|
committer | Marc Schink <dev@zapb.de> | 2021-01-19 11:59:17 +0100 |
commit | 91e282fadcc78fb587ba3a68e113e87329184336 (patch) | |
tree | 63c9c817e63dc8dcc4f1e481f52b2f7ab33cd00d | |
parent | 533a29b0096a84fdcfb3e06ddf4a8c16b9e4a809 (diff) | |
download | libjaylink-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.c | 12 |
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; |