summaryrefslogtreecommitdiff
path: root/setup_once.h
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2007-10-24 14:39:07 +0000
committerYang Tse <yangsita@gmail.com>2007-10-24 14:39:07 +0000
commit269e082f77c34db23eed4e875389f5c8a20fcd5d (patch)
treebdc3f265399cd8ff841f41d121f7c3fc2848c3e3 /setup_once.h
parentb68a4326d206a1239f38b373026c2913cc200f41 (diff)
downloadc-ares-269e082f77c34db23eed4e875389f5c8a20fcd5d.tar.gz
c-ares-269e082f77c34db23eed4e875389f5c8a20fcd5d.tar.bz2
c-ares-269e082f77c34db23eed4e875389f5c8a20fcd5d.zip
Windows build targets have socklen_t definition in ws2tcpip.h but some
versions of ws2tcpip.h do not have the definition. It seems that when the socklen_t definition is missing from ws2tcpip.h the definition for INET_ADDRSTRLEN is also missing, and that when one definition is present the other one also is available.
Diffstat (limited to 'setup_once.h')
-rw-r--r--setup_once.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/setup_once.h b/setup_once.h
index d9b0f86..20969d4 100644
--- a/setup_once.h
+++ b/setup_once.h
@@ -91,6 +91,24 @@ struct timeval {
#endif
+/*
+ * Windows build targets have socklen_t definition in
+ * ws2tcpip.h but some versions of ws2tcpip.h do not
+ * have the definition. It seems that when the socklen_t
+ * definition is missing from ws2tcpip.h the definition
+ * for INET_ADDRSTRLEN is also missing, and that when one
+ * definition is present the other one also is available.
+ */
+
+#if defined(WIN32) && !defined(HAVE_SOCKLEN_T)
+# if ( defined(_MSC_VER) && !defined(INET_ADDRSTRLEN) ) || \
+ (!defined(_MSC_VER) && !defined(HAVE_WS2TCPIP_H) )
+# define socklen_t int
+# define HAVE_SOCKLEN_T
+# endif
+#endif
+
+
#if defined(__minix)
/* Minix doesn't support recv on TCP sockets */
#define sread(x,y,z) (ssize_t)read((RECV_TYPE_ARG1)(x), \