win32 inet_top
Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/lws-plat-win.c b/lib/lws-plat-win.c
index c9d7b4b..585c610 100644
--- a/lib/lws-plat-win.c
+++ b/lib/lws-plat-win.c
@@ -308,4 +308,30 @@
*filelen = GetFileSize(ret, NULL);
return ret;
+}
+
+/*
+ * Windows doesn't have an "inet_top"
+ * This came from http://memset.wordpress.com/2010/10/09/inet_ntop-for-win32/
+ * suggested by Joakim Soderberg
+ */
+
+LWS_VISIBLE
+const char *inet_ntop(int af, const void *src, char *dst, int cnt)
+{
+ struct sockaddr_in srcaddr;
+ DWORD rv;
+
+ memset(&srcaddr, 0, sizeof(struct sockaddr_in));
+ memcpy(&(srcaddr.sin_addr), src, sizeof(srcaddr.sin_addr));
+
+ srcaddr.sin_family = af;
+ if (!WSAAddressToString((struct sockaddr*) &srcaddr,
+ sizeof(struct sockaddr_in), 0, dst, (LPDWORD) &cnt))
+ return dst;
+
+ rv = WSAGetLastError();
+ lwsl_err("WSAAddressToString() : %d\n",rv);
+
+ return NULL;
}
\ No newline at end of file
diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h
index 1a58dd8..cfc61c0 100644
--- a/lib/private-libwebsockets.h
+++ b/lib/private-libwebsockets.h
@@ -83,6 +83,7 @@
#include <winsock2.h>
#include <windows.h>
#define LWS_INVALID_FILE INVALID_HANDLE_VALUE
+const char *inet_ntop(int af, const void *src, char *dst, int cnt);
#else /* not windows --> */
#include <errno.h>
#include <fcntl.h>