Fix MSVC warning in net.c
The warning was caused because in MSVC some of the function parameters
for the socket APIs are int while the fields in struct addrinfo are
size_t e.g. possible data loss.
diff --git a/library/net.c b/library/net.c
index c7ce258..f88b844 100644
--- a/library/net.c
+++ b/library/net.c
@@ -92,6 +92,14 @@
#endif /* ( _WIN32 || _WIN32_WCE ) && !EFIX64 && !EFI32 */
+/* Some MS functions want int and MSVC warns if we pass size_t,
+ * but the standard fucntions use socklen_t, so cast only for MSVC */
+#if defined(_MSC_VER)
+#define MSVC_INT_CAST (int)
+#else
+#define MSVC_INT_CAST
+#endif
+
#include <stdlib.h>
#include <stdio.h>
@@ -202,7 +210,7 @@
continue;
}
- if( connect( *fd, cur->ai_addr, cur->ai_addrlen ) == 0 )
+ if( connect( *fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen ) == 0 )
{
ret = 0;
break;
@@ -299,7 +307,7 @@
continue;
}
- if( bind( *fd, cur->ai_addr, cur->ai_addrlen ) != 0 )
+ if( bind( *fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen ) != 0 )
{
close( *fd );
ret = POLARSSL_ERR_NET_BIND_FAILED;