diff options
author | Georg Brandl <georg@python.org> | 2010-07-28 08:19:35 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-07-28 08:19:35 (GMT) |
commit | cbb0ae4a428bae3f5c29a1f8974121bb195299ef (patch) | |
tree | 23b2d8b246b7dbaddf966dcf50ccbeca601fd173 | |
parent | 8182b717dbedc5d864a2240e6ff9120ecb2607dc (diff) | |
download | cpython-cbb0ae4a428bae3f5c29a1f8974121bb195299ef.zip cpython-cbb0ae4a428bae3f5c29a1f8974121bb195299ef.tar.gz cpython-cbb0ae4a428bae3f5c29a1f8974121bb195299ef.tar.bz2 |
#9354: Provide getsockopt() in asyncore file_wrapper(). Patch by Lukas Langa.
-rw-r--r-- | Lib/asyncore.py | 8 | ||||
-rw-r--r-- | Lib/test/test_asyncore.py | 13 | ||||
-rw-r--r-- | Misc/ACKS | 2 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
4 files changed, 24 insertions, 1 deletions
diff --git a/Lib/asyncore.py b/Lib/asyncore.py index c2ec259..fba55e0 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -607,6 +607,14 @@ if os.name == 'posix': def send(self, *args): return os.write(self.fd, *args) + def getsockopt(self, level, optname, buflen=None): + if (level == socket.SOL_SOCKET and + optname == socket.SO_ERROR and + not buflen): + return 0 + raise NotImplementedError("Only asyncore specific behaviour " + "implemented.") + read = recv write = send diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py index 5a1b83c..ce0a84f 100644 --- a/Lib/test/test_asyncore.py +++ b/Lib/test/test_asyncore.py @@ -428,6 +428,19 @@ class FileWrapperTest(unittest.TestCase): w.close() self.assertEqual(open(TESTFN, 'rb').read(), self.d + d1 + d2) + @unittest.skipUnless(hasattr(asyncore, 'file_dispatcher'), + 'asyncore.file_dispatcher required') + def test_dispatcher(self): + fd = os.open(TESTFN, os.O_RDONLY) + data = [] + class FileDispatcher(asyncore.file_dispatcher): + def handle_read(self): + data.append(self.recv(29)) + s = FileDispatcher(fd) + os.close(fd) + asyncore.loop(timeout=0.01, use_poll=True, count=2) + self.assertEqual(b"".join(data), self.d) + class BaseTestHandler(asyncore.dispatcher): @@ -448,8 +448,8 @@ Andrew Kuchling Vladimir Kushnir Cameron Laird Torsten Landschoff -Tino Lange Ćukasz Langa +Tino Lange Andrew Langmead Detlef Lannert Soren Larsen @@ -475,6 +475,8 @@ C-API Library ------- +- Issue #9354: Provide getsockopt() in asyncore's file_wrapper. + - Issue #8966: ctypes: Remove implicit bytes-unicode conversion. - Issue #9378: python -m pickle <pickle file> will now load and |