You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
5.6 KiB

Merged revisions 53623-53858 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r53624 | peter.astrand | 2007-02-02 20:06:36 +0100 (Fri, 02 Feb 2007) | 1 line We had several if statements checking the value of a fd. This is unsafe, since valid fds might be zero. We should check for not None instead. ........ r53635 | kurt.kaiser | 2007-02-05 07:03:18 +0100 (Mon, 05 Feb 2007) | 2 lines Add 'raw' support to configHandler. Patch 1650174 Tal Einat. ........ r53641 | kurt.kaiser | 2007-02-06 00:02:16 +0100 (Tue, 06 Feb 2007) | 5 lines 1. Calltips now 'handle' tuples in the argument list (display '<tuple>' :) Suggested solution by Christos Georgiou, Bug 791968. 2. Clean up tests, were not failing when they should have been. 4. Remove some camelcase and an unneeded try/except block. ........ r53644 | kurt.kaiser | 2007-02-06 04:21:40 +0100 (Tue, 06 Feb 2007) | 2 lines Clean up ModifiedInterpreter.runcode() structure ........ r53646 | peter.astrand | 2007-02-06 16:37:50 +0100 (Tue, 06 Feb 2007) | 1 line Applied patch 1124861.3.patch to solve bug #1124861: Automatically create pipes on Windows, if GetStdHandle fails. Will backport. ........ r53648 | lars.gustaebel | 2007-02-06 19:38:13 +0100 (Tue, 06 Feb 2007) | 4 lines Patch #1652681: create nonexistent files in append mode and allow appending to empty files. ........ r53649 | kurt.kaiser | 2007-02-06 20:09:43 +0100 (Tue, 06 Feb 2007) | 4 lines Updated patch (CodeContext.061217.patch) to [ 1362975 ] CodeContext - Improved text indentation Tal Einat 16Dec06 ........ r53650 | kurt.kaiser | 2007-02-06 20:21:19 +0100 (Tue, 06 Feb 2007) | 2 lines narrow exception per [ 1540849 ] except too broad ........ r53653 | kurt.kaiser | 2007-02-07 04:39:41 +0100 (Wed, 07 Feb 2007) | 4 lines [ 1621265 ] Auto-completion list placement Move AC window below input line unless not enough space, then put it above. Patch: Tal Einat ........ r53654 | kurt.kaiser | 2007-02-07 09:07:13 +0100 (Wed, 07 Feb 2007) | 2 lines Handle AttributeError during calltip lookup ........ r53656 | raymond.hettinger | 2007-02-07 21:08:22 +0100 (Wed, 07 Feb 2007) | 3 lines SF #1615701: make d.update(m) honor __getitem__() and keys() in dict subclasses ........ r53658 | raymond.hettinger | 2007-02-07 22:04:20 +0100 (Wed, 07 Feb 2007) | 1 line SF: 1397711 Set docs conflated immutable and hashable ........ r53660 | raymond.hettinger | 2007-02-07 22:42:17 +0100 (Wed, 07 Feb 2007) | 1 line Check for a common user error with defaultdict(). ........ r53662 | raymond.hettinger | 2007-02-07 23:24:07 +0100 (Wed, 07 Feb 2007) | 1 line Bug #1575169: operator.isSequenceType() now returns False for subclasses of dict. ........ r53664 | raymond.hettinger | 2007-02-08 00:49:03 +0100 (Thu, 08 Feb 2007) | 1 line Silence compiler warning ........ r53666 | raymond.hettinger | 2007-02-08 01:07:32 +0100 (Thu, 08 Feb 2007) | 1 line Do not let overflows in enumerate() and count() pass silently. ........ r53668 | raymond.hettinger | 2007-02-08 01:50:39 +0100 (Thu, 08 Feb 2007) | 1 line Bypass set specific optimizations for set and frozenset subclasses. ........ r53670 | raymond.hettinger | 2007-02-08 02:42:35 +0100 (Thu, 08 Feb 2007) | 1 line Fix docstring bug ........ r53671 | martin.v.loewis | 2007-02-08 10:13:36 +0100 (Thu, 08 Feb 2007) | 3 lines Bug #1653736: Complain about keyword arguments to time.isoformat. Will backport to 2.5. ........ r53679 | kurt.kaiser | 2007-02-08 23:58:18 +0100 (Thu, 08 Feb 2007) | 6 lines Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented; mouse and cursor selection in ACWindow implemented; double Tab inserts current selection and closes ACW (similar to double-click and Return); scroll wheel now works in ACW. Added AutoComplete instructions to IDLE Help. ........ r53689 | martin.v.loewis | 2007-02-09 13:19:32 +0100 (Fri, 09 Feb 2007) | 3 lines Bug #1653736: Properly discard third argument to slot_nb_inplace_power. Will backport. ........ r53691 | martin.v.loewis | 2007-02-09 13:36:48 +0100 (Fri, 09 Feb 2007) | 4 lines Bug #1600860: Search for shared python library in LIBDIR, not lib/python/config, on "linux" and "gnu" systems. Will backport. ........ r53693 | martin.v.loewis | 2007-02-09 13:58:49 +0100 (Fri, 09 Feb 2007) | 2 lines Update broken link. Will backport to 2.5. ........ r53697 | georg.brandl | 2007-02-09 19:48:41 +0100 (Fri, 09 Feb 2007) | 2 lines Bug #1656078: typo in in profile docs. ........ r53731 | brett.cannon | 2007-02-11 06:36:00 +0100 (Sun, 11 Feb 2007) | 3 lines Change a very minor inconsistency (that is purely cosmetic) in the AST definition. ........ r53735 | skip.montanaro | 2007-02-11 19:24:37 +0100 (Sun, 11 Feb 2007) | 1 line fix trace.py --ignore-dir ........ r53741 | brett.cannon | 2007-02-11 20:44:41 +0100 (Sun, 11 Feb 2007) | 3 lines Check in changed Python-ast.c from a cosmetic change to Python.asdl (in r53731). ........ r53751 | brett.cannon | 2007-02-12 04:51:02 +0100 (Mon, 12 Feb 2007) | 5 lines Modify Parser/asdl_c.py so that the __version__ number for Python/Python-ast.c is specified at the top of the file. Also add a note that Python/Python-ast.c needs to be committed separately after a change to the AST grammar to capture the revision number of the change (which is what __version__ is set to). ........ r53752 | lars.gustaebel | 2007-02-12 10:25:53 +0100 (Mon, 12 Feb 2007) | 3 lines Bug #1656581: Point out that external file objects are supposed to be at position 0. ........ r53754 | martin.v.loewis | 2007-02-12 13:21:10 +0100 (Mon, 12 Feb 2007) | 3 lines Patch 1463026: Support default namespace in XMLGenerator. Fixes #847665. Will backport. ........ r53757 | armin.rigo | 2007-02-12 17:23:24 +0100 (Mon, 12 Feb 2007) | 4 lines Fix the line to what is my guess at the original author's meaning. (The line has no effect anyway, but is present because it's customary call the base class __init__). ........ r53763 | martin.v.loewis | 2007-02-13 09:34:45 +0100 (Tue, 13 Feb 2007) | 3 lines Patch #685268: Consider a package's __path__ in imputil. Will backport. ........ r53765 | martin.v.loewis | 2007-02-13 10:49:38 +0100 (Tue, 13 Feb 2007) | 2 lines Patch #698833: Support file decryption in zipfile. ........ r53766 | martin.v.loewis | 2007-02-13 11:10:39 +0100 (Tue, 13 Feb 2007) | 3 lines Patch #1517891: Make 'a' create the file if it doesn't exist. Fixes #1514451. ........ r53767 | martin.v.loewis | 2007-02-13 13:08:24 +0100 (Tue, 13 Feb 2007) | 3 lines Bug #1658794: Remove extraneous 'this'. Will backport to 2.5. ........ r53769 | martin.v.loewis | 2007-02-13 13:14:19 +0100 (Tue, 13 Feb 2007) | 3 lines Patch #1657276: Make NETLINK_DNRTMSG conditional. Will backport. ........ r53771 | lars.gustaebel | 2007-02-13 17:09:24 +0100 (Tue, 13 Feb 2007) | 4 lines Patch #1647484: Renamed GzipFile's filename attribute to name. The filename attribute is still accessible as a property that emits a DeprecationWarning. ........ r53772 | lars.gustaebel | 2007-02-13 17:24:00 +0100 (Tue, 13 Feb 2007) | 3 lines Strip the '.gz' extension from the filename that is written to the gzip header. ........ r53774 | martin.v.loewis | 2007-02-14 11:07:37 +0100 (Wed, 14 Feb 2007) | 2 lines Patch #1432399: Add HCI sockets. ........ r53775 | martin.v.loewis | 2007-02-14 12:30:07 +0100 (Wed, 14 Feb 2007) | 2 lines Update 1432399 to removal of _BT_SOCKADDR_MEMB. ........ r53776 | martin.v.loewis | 2007-02-14 12:30:56 +0100 (Wed, 14 Feb 2007) | 3 lines Ignore directory time stamps when considering whether to rerun libffi configure. ........ r53778 | lars.gustaebel | 2007-02-14 15:45:12 +0100 (Wed, 14 Feb 2007) | 4 lines A missing binary mode in AppendTest caused failures in Windows Buildbot. ........ r53782 | martin.v.loewis | 2007-02-15 10:51:35 +0100 (Thu, 15 Feb 2007) | 2 lines Patch #1397848: add the reasoning behind no-resize-on-shrinkage. ........ r53783 | georg.brandl | 2007-02-15 11:37:59 +0100 (Thu, 15 Feb 2007) | 2 lines Make functools.wraps() docs a bit clearer. ........ r53785 | georg.brandl | 2007-02-15 12:29:04 +0100 (Thu, 15 Feb 2007) | 2 lines Patch #1494140: Add documentation for the new struct.Struct object. ........ r53787 | georg.brandl | 2007-02-15 12:29:55 +0100 (Thu, 15 Feb 2007) | 2 lines Add missing \versionadded. ........ r53800 | brett.cannon | 2007-02-15 23:54:39 +0100 (Thu, 15 Feb 2007) | 11 lines Update the encoding package's search function to use absolute imports when calling __import__. This helps make the expected search locations for encoding modules be more explicit. One could use an explicit value for __path__ when making the call to __import__ to force the exact location searched for encodings. This would give the most strict search path possible if one is worried about malicious code being imported. The unfortunate side-effect of that is that if __path__ was modified on 'encodings' on purpose in a safe way it would not be picked up in future __import__ calls. ........ r53801 | brett.cannon | 2007-02-16 20:33:01 +0100 (Fri, 16 Feb 2007) | 2 lines Make the __import__ call in encodings.__init__ absolute with a level 0 call. ........ r53809 | vinay.sajip | 2007-02-16 23:36:24 +0100 (Fri, 16 Feb 2007) | 1 line Minor fix for currentframe (SF #1652788). ........ r53818 | raymond.hettinger | 2007-02-19 03:03:19 +0100 (Mon, 19 Feb 2007) | 3 lines Extend work on revision 52962: Eliminate redundant calls to PyObject_Hash(). ........ r53820 | raymond.hettinger | 2007-02-19 05:08:43 +0100 (Mon, 19 Feb 2007) | 1 line Add merge() function to heapq. ........ r53821 | raymond.hettinger | 2007-02-19 06:28:28 +0100 (Mon, 19 Feb 2007) | 1 line Add tie-breaker count to preserve sort stability. ........ r53822 | raymond.hettinger | 2007-02-19 07:59:32 +0100 (Mon, 19 Feb 2007) | 1 line Use C heapreplace() instead of slower _siftup() in pure python. ........ r53823 | raymond.hettinger | 2007-02-19 08:30:21 +0100 (Mon, 19 Feb 2007) | 1 line Add test for merge stability ........ r53824 | raymond.hettinger | 2007-02-19 10:14:10 +0100 (Mon, 19 Feb 2007) | 1 line Provide an example of defaultdict with non-zero constant factory function. ........ r53825 | lars.gustaebel | 2007-02-19 10:54:47 +0100 (Mon, 19 Feb 2007) | 2 lines Moved misplaced news item. ........ r53826 | martin.v.loewis | 2007-02-19 11:55:19 +0100 (Mon, 19 Feb 2007) | 3 lines Patch #1490190: posixmodule now includes os.chflags() and os.lchflags() functions on platforms where the underlying system calls are available. ........ r53827 | raymond.hettinger | 2007-02-19 19:15:04 +0100 (Mon, 19 Feb 2007) | 1 line Fixup docstrings for merge(). ........ r53829 | raymond.hettinger | 2007-02-19 21:44:04 +0100 (Mon, 19 Feb 2007) | 1 line Fixup set/dict interoperability. ........ r53837 | raymond.hettinger | 2007-02-21 06:20:38 +0100 (Wed, 21 Feb 2007) | 1 line Add itertools.izip_longest(). ........ r53838 | raymond.hettinger | 2007-02-21 18:22:05 +0100 (Wed, 21 Feb 2007) | 1 line Remove filler struct item and fix leak. ........
19 years ago
  1. /* Socket module header file */
  2. /* Includes needed for the sockaddr_* symbols below */
  3. #ifndef MS_WINDOWS
  4. #ifdef __VMS
  5. # include <socket.h>
  6. # else
  7. # include <sys/socket.h>
  8. # endif
  9. # include <netinet/in.h>
  10. # if !(defined(__CYGWIN__) || (defined(PYOS_OS2) && defined(PYCC_VACPP)))
  11. # include <netinet/tcp.h>
  12. # endif
  13. #else /* MS_WINDOWS */
  14. # include <winsock2.h>
  15. # include <ws2tcpip.h>
  16. /* VC6 is shipped with old platform headers, and does not have MSTcpIP.h
  17. * Separate SDKs have all the functions we want, but older ones don't have
  18. * any version information.
  19. * I use SIO_GET_MULTICAST_FILTER to detect a decent SDK.
  20. */
  21. # ifdef SIO_GET_MULTICAST_FILTER
  22. # include <MSTcpIP.h> /* for SIO_RCVALL */
  23. # define HAVE_ADDRINFO
  24. # define HAVE_SOCKADDR_STORAGE
  25. # define HAVE_GETADDRINFO
  26. # define HAVE_GETNAMEINFO
  27. # define ENABLE_IPV6
  28. # else
  29. typedef int socklen_t;
  30. # endif /* IPPROTO_IPV6 */
  31. #endif /* MS_WINDOWS */
  32. #ifdef HAVE_SYS_UN_H
  33. # include <sys/un.h>
  34. #else
  35. # undef AF_UNIX
  36. #endif
  37. #ifdef HAVE_LINUX_NETLINK_H
  38. # ifdef HAVE_ASM_TYPES_H
  39. # include <asm/types.h>
  40. # endif
  41. # include <linux/netlink.h>
  42. #else
  43. # undef AF_NETLINK
  44. #endif
  45. #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
  46. #include <bluetooth/bluetooth.h>
  47. #include <bluetooth/rfcomm.h>
  48. #include <bluetooth/l2cap.h>
  49. #include <bluetooth/sco.h>
  50. #include <bluetooth/hci.h>
  51. #endif
  52. #ifdef HAVE_BLUETOOTH_H
  53. #include <bluetooth.h>
  54. #endif
  55. #ifdef HAVE_NETPACKET_PACKET_H
  56. # include <sys/ioctl.h>
  57. # include <net/if.h>
  58. # include <netpacket/packet.h>
  59. #endif
  60. #ifdef HAVE_LINUX_TIPC_H
  61. # include <linux/tipc.h>
  62. #endif
  63. #ifndef Py__SOCKET_H
  64. #define Py__SOCKET_H
  65. #ifdef __cplusplus
  66. extern "C" {
  67. #endif
  68. /* Python module and C API name */
  69. #define PySocket_MODULE_NAME "_socket"
  70. #define PySocket_CAPI_NAME "CAPI"
  71. #define PySocket_CAPSULE_NAME PySocket_MODULE_NAME "." PySocket_CAPI_NAME
  72. /* Abstract the socket file descriptor type */
  73. #ifdef MS_WINDOWS
  74. typedef SOCKET SOCKET_T;
  75. # ifdef MS_WIN64
  76. # define SIZEOF_SOCKET_T 8
  77. # else
  78. # define SIZEOF_SOCKET_T 4
  79. # endif
  80. #else
  81. typedef int SOCKET_T;
  82. # define SIZEOF_SOCKET_T SIZEOF_INT
  83. #endif
  84. #if SIZEOF_SOCKET_T <= SIZEOF_LONG
  85. #define PyLong_FromSocket_t(fd) PyLong_FromLong((SOCKET_T)(fd))
  86. #define PyLong_AsSocket_t(fd) (SOCKET_T)PyLong_AsLong(fd)
  87. #else
  88. #define PyLong_FromSocket_t(fd) PyLong_FromLongLong((SOCKET_T)(fd))
  89. #define PyLong_AsSocket_t(fd) (SOCKET_T)PyLong_AsLongLong(fd)
  90. #endif
  91. /* Socket address */
  92. typedef union sock_addr {
  93. struct sockaddr_in in;
  94. #ifdef AF_UNIX
  95. struct sockaddr_un un;
  96. #endif
  97. #ifdef AF_NETLINK
  98. struct sockaddr_nl nl;
  99. #endif
  100. #ifdef ENABLE_IPV6
  101. struct sockaddr_in6 in6;
  102. struct sockaddr_storage storage;
  103. #endif
  104. #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
  105. struct sockaddr_l2 bt_l2;
  106. struct sockaddr_rc bt_rc;
  107. struct sockaddr_sco bt_sco;
  108. struct sockaddr_hci bt_hci;
  109. #endif
  110. #ifdef HAVE_NETPACKET_PACKET_H
  111. struct sockaddr_ll ll;
  112. #endif
  113. } sock_addr_t;
  114. /* The object holding a socket. It holds some extra information,
  115. like the address family, which is used to decode socket address
  116. arguments properly. */
  117. typedef struct {
  118. PyObject_HEAD
  119. SOCKET_T sock_fd; /* Socket file descriptor */
  120. int sock_family; /* Address family, e.g., AF_INET */
  121. int sock_type; /* Socket type, e.g., SOCK_STREAM */
  122. int sock_proto; /* Protocol type, usually 0 */
  123. PyObject *(*errorhandler)(void); /* Error handler; checks
  124. errno, returns NULL and
  125. sets a Python exception */
  126. double sock_timeout; /* Operation timeout in seconds;
  127. 0.0 means non-blocking */
  128. } PySocketSockObject;
  129. /* --- C API ----------------------------------------------------*/
  130. /* Short explanation of what this C API export mechanism does
  131. and how it works:
  132. The _ssl module needs access to the type object defined in
  133. the _socket module. Since cross-DLL linking introduces a lot of
  134. problems on many platforms, the "trick" is to wrap the
  135. C API of a module in a struct which then gets exported to
  136. other modules via a PyCapsule.
  137. The code in socketmodule.c defines this struct (which currently
  138. only contains the type object reference, but could very
  139. well also include other C APIs needed by other modules)
  140. and exports it as PyCapsule via the module dictionary
  141. under the name "CAPI".
  142. Other modules can now include the socketmodule.h file
  143. which defines the needed C APIs to import and set up
  144. a static copy of this struct in the importing module.
  145. After initialization, the importing module can then
  146. access the C APIs from the _socket module by simply
  147. referring to the static struct, e.g.
  148. Load _socket module and its C API; this sets up the global
  149. PySocketModule:
  150. if (PySocketModule_ImportModuleAndAPI())
  151. return;
  152. Now use the C API as if it were defined in the using
  153. module:
  154. if (!PyArg_ParseTuple(args, "O!|zz:ssl",
  155. PySocketModule.Sock_Type,
  156. (PyObject*)&Sock,
  157. &key_file, &cert_file))
  158. return NULL;
  159. Support could easily be extended to export more C APIs/symbols
  160. this way. Currently, only the type object is exported,
  161. other candidates would be socket constructors and socket
  162. access functions.
  163. */
  164. /* C API for usage by other Python modules */
  165. typedef struct {
  166. PyTypeObject *Sock_Type;
  167. PyObject *error;
  168. PyObject *timeout_error;
  169. } PySocketModule_APIObject;
  170. #define PySocketModule_ImportModuleAndAPI() PyCapsule_Import(PySocket_CAPSULE_NAME, 1)
  171. #ifdef __cplusplus
  172. }
  173. #endif
  174. #endif /* !Py__SOCKET_H */