summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/socketmodule.c3
-rw-r--r--Modules/socketmodule.h10
-rw-r--r--PC/pyconfig.h4
3 files changed, 17 insertions, 0 deletions
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 2f954a9..92b8d4b 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -409,8 +409,11 @@ PyGAI_Err(int error)
{
PyObject *v;
+#ifdef EAI_SYSTEM
+ /* EAI_SYSTEM is not available on Windows XP. */
if (error == EAI_SYSTEM)
return PySocket_Err();
+#endif
#ifdef HAVE_GAI_STRERROR
v = Py_BuildValue("(is)", error, gai_strerror(error));
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
index d1503ba..a59e6f7 100644
--- a/Modules/socketmodule.h
+++ b/Modules/socketmodule.h
@@ -9,8 +9,18 @@
# endif
#else /* MS_WINDOWS */
+#if _MSC_VER >= 1300
+# include <winsock2.h>
+# include <ws2tcpip.h>
+# define HAVE_ADDRINFO
+# define HAVE_SOCKADDR_STORAGE
+# define HAVE_GETADDRINFO
+# define HAVE_GETNAMEINFO
+# define ENABLE_IPV6
+#else
# include <winsock.h>
#endif
+#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
diff --git a/PC/pyconfig.h b/PC/pyconfig.h
index 6402f1d..b412f77 100644
--- a/PC/pyconfig.h
+++ b/PC/pyconfig.h
@@ -408,7 +408,11 @@ typedef int pid_t;
/* #undef size_t */
/* Define to `int' if <sys/types.h> doesn't define. */
+#if _MSC_VER + 0 >= 1300
+/* VC.NET typedefs socklen_t in ws2tcpip.h. */
+#else
#define socklen_t int
+#endif
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1