[Python-3000-checkins] r56415 - python/branches/py3k-struni/Lib/socket.py
guido.van.rossum
python-3000-checkins at python.org
Tue Jul 17 22:41:19 CEST 2007
Author: guido.van.rossum
Date: Tue Jul 17 22:41:19 2007
New Revision: 56415
Modified:
python/branches/py3k-struni/Lib/socket.py
Log:
(1) SF patch# 1755214 by Amaury Forgeot d'Arc which makes some tests
pass on Windows.
(2) Fix a typo in makefile() where using a text mode would attempt to set
self.mode instead of text.mode.
Modified: python/branches/py3k-struni/Lib/socket.py
==============================================================================
--- python/branches/py3k-struni/Lib/socket.py (original)
+++ python/branches/py3k-struni/Lib/socket.py Tue Jul 17 22:41:19 2007
@@ -87,8 +87,11 @@
__all__.append("errorTab")
-_os_has_dup = hasattr(os, "dup")
-if _os_has_dup:
+# True if os.dup() can duplicate socket descriptors.
+# (On Windows at least, os.dup only works on files)
+_can_dup_socket = hasattr(_socket, "dup")
+
+if _can_dup_socket:
def fromfd(fd, family=AF_INET, type=SOCK_STREAM, proto=0):
nfd = os.dup(fd)
return socket(family, type, proto, fileno=nfd)
@@ -99,7 +102,7 @@
"""A subclass of _socket.socket adding the makefile() method."""
__slots__ = ["__weakref__"]
- if not _os_has_dup:
+ if not _can_dup_socket:
__slots__.append("_base")
def __repr__(self):
@@ -116,7 +119,7 @@
conn, addr = _socket.socket.accept(self)
fd = conn.fileno()
nfd = fd
- if _os_has_dup:
+ if _can_dup_socket:
nfd = os.dup(fd)
wrapper = socket(self.family, self.type, self.proto, fileno=nfd)
if fd == nfd:
@@ -125,7 +128,7 @@
conn.close()
return wrapper, addr
- if not _os_has_dup:
+ if not _can_dup_socket:
def close(self):
"""Wrap close() to close the _base as well."""
_socket.socket.close(self)
@@ -177,7 +180,7 @@
return buffer
text = io.TextIOWrapper(buffer, encoding, newline)
text.name = self.fileno()
- self.mode = mode
+ text.mode = mode
return text
More information about the Python-3000-checkins
mailing list