summaryrefslogtreecommitdiff
path: root/Modules/socketmodule.h
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-06-13 00:42:22 +0000
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-06-13 00:42:22 +0000
commite000b21702037201b0ed91b4593ec81da6e7b1a6 (patch)
tree82cb9fd11e31e5d435ba590b521540414dcab336 /Modules/socketmodule.h
parente3d5374b2800a568d45f03c88a786a875db54bed (diff)
downloadcpython-e000b21702037201b0ed91b4593ec81da6e7b1a6.tar.gz
Restore support for Microsoft VC6 compiler.
Some functions in the msvcrt module are skipped, and socket.ioctl is enabled only when using a more recent Platform SDK. (and yes, there are still companies that use a 10-years old compiler)
Diffstat (limited to 'Modules/socketmodule.h')
-rw-r--r--Modules/socketmodule.h26
1 files changed, 15 insertions, 11 deletions
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
index 285c1fe6e5..44483cb35b 100644
--- a/Modules/socketmodule.h
+++ b/Modules/socketmodule.h
@@ -13,19 +13,23 @@
# endif
#else /* MS_WINDOWS */
-#if _MSC_VER >= 1300
# include <winsock2.h>
# include <ws2tcpip.h>
-# include <MSTcpIP.h> /* for SIO_RCVALL */
-# define HAVE_ADDRINFO
-# define HAVE_SOCKADDR_STORAGE
-# define HAVE_GETADDRINFO
-# define HAVE_GETNAMEINFO
-# define ENABLE_IPV6
-#else
-# include <winsock.h>
-#endif
-#endif
+/* VC6 is shipped with old platform headers, and does not have MSTcpIP.h
+ * Separate SDKs have all the functions we want, but older ones don't have
+ * any version information. I use IPPROTO_IPV6 to detect a decent SDK.
+ */
+# ifdef IPPROTO_IPV6
+# include <MSTcpIP.h> /* for SIO_RCVALL */
+# define HAVE_ADDRINFO
+# define HAVE_SOCKADDR_STORAGE
+# define HAVE_GETADDRINFO
+# define HAVE_GETNAMEINFO
+# define ENABLE_IPV6
+# else
+typedef int socklen_t;
+# endif /* IPPROTO_IPV6 */
+#endif /* MS_WINDOWS */
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>