From 706fa6b2920953c4a5cc07f261ab82af21e3e0ee Mon Sep 17 00:00:00 2001 From: Stéphane Raimbault Date: Tue, 28 Jan 2014 22:46:11 +0100 Subject: [PATCH] Fix TCP IPv4 modbus_connect() on win32 (closes #100 and #165) --- src/modbus-tcp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/modbus-tcp.c b/src/modbus-tcp.c index 69455e6..ebfe2df 100644 --- a/src/modbus-tcp.c +++ b/src/modbus-tcp.c @@ -268,11 +268,18 @@ static int _connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen, { int rc; +#ifdef OS_WIN32 + int wsaError = 0; + rc = connect(sockfd, addr, addrlen); + if (rc == -1) { + wsaError = WSAGetLastError(); + } -#ifdef OS_WIN32 - if (rc == -1 && WSAGetLastError() == WSAEINPROGRESS) { + if (wsaError == WSAEWOULDBLOCK || wsaError == WSAEINPROGRESS) { #else + + rc = connect(sockfd, addr, addrlen); if (rc == -1 && errno == EINPROGRESS) { #endif fd_set wset; -- libgit2 0.21.4