Merged revisions 84347 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84347 | antoine.pitrou | 2010-08-28 22:42:55 +0200 (sam., 28 août 2010) | 5 lines

  Issue #4835: make PyLong_FromSocket_t() and PyLong_AsSocket_t() private
  to the socket module, and fix the width of socket descriptors to be
  correctly detected under 64-bit Windows.
........
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
index 49ac9d0..4f426f5 100644
--- a/Modules/socketmodule.h
+++ b/Modules/socketmodule.h
@@ -93,6 +93,14 @@
 #       define SIZEOF_SOCKET_T SIZEOF_INT
 #endif
 
+#if SIZEOF_SOCKET_T <= SIZEOF_LONG
+#define PyLong_FromSocket_t(fd) PyLong_FromLong((SOCKET_T)(fd))
+#define PyLong_AsSocket_t(fd) (SOCKET_T)PyLong_AsLong(fd)
+#else
+#define PyLong_FromSocket_t(fd) PyLong_FromLongLong((SOCKET_T)(fd))
+#define PyLong_AsSocket_t(fd) (SOCKET_T)PyLong_AsLongLong(fd)
+#endif
+
 /* Socket address */
 typedef union sock_addr {
     struct sockaddr_in in;