aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2017-02-16 20:45:21 +0200
committerOskari Timperi <oskari.timperi@iki.fi>2017-02-16 20:45:21 +0200
commitebb556449f4b533bb2e3c52567c498f25a3c7b41 (patch)
treea4b641a050151a47ed909d5b4fbc26affba73346 /src
parentab41e0dcb8f5c201547e41803e3fec2ae007c590 (diff)
downloadmqtt-ebb556449f4b533bb2e3c52567c498f25a3c7b41.tar.gz
mqtt-ebb556449f4b533bb2e3c52567c498f25a3c7b41.zip
MSVC/Windows cleanups to socket.c
Diffstat (limited to 'src')
-rw-r--r--src/socket.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/socket.c b/src/socket.c
index 7828e27..1716f19 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -29,11 +29,13 @@ static int InitializeWsa()
}
return 0;
}
+
+#define close closesocket
#endif
int SocketConnect(const char *host, short port)
{
- struct addrinfo hints, *servinfo, *p;
+ struct addrinfo hints, *servinfo, *p = NULL;
int rv;
char portstr[6];
int sock;
@@ -53,7 +55,7 @@ int SocketConnect(const char *host, short port)
if ((rv = getaddrinfo(host, portstr, &hints, &servinfo)) != 0)
{
- return -1;
+ goto cleanup;
}
for (p = servinfo; p != NULL; p = p->ai_next)
@@ -75,8 +77,13 @@ int SocketConnect(const char *host, short port)
freeaddrinfo(servinfo);
+cleanup:
+
if (p == NULL)
{
+#if defined(_WIN32)
+ WSACleanup();
+#endif
return -1;
}
@@ -85,12 +92,11 @@ int SocketConnect(const char *host, short port)
int SocketDisconnect(int sock)
{
-#ifdef _WIN32
- int rc = closesocket(sock);
+ int rc = close(sock);
+#if defined(_WIN32)
WSACleanup();
-#else
- return close(sock);
#endif
+ return rc;
}
int SocketSendAll(int sock, const char *buf, size_t *len)