diff --git a/Lib/socket.py b/Lib/socket.py index 7ce28699c95..6b4b743f680 100644 --- a/Lib/socket.py +++ b/Lib/socket.py @@ -141,7 +141,10 @@ _socketmethods = ( 'bind', 'connect', 'connect_ex', 'fileno', 'listen', 'getpeername', 'getsockname', 'getsockopt', 'setsockopt', 'sendall', 'setblocking', - 'settimeout', 'gettimeout', 'shutdown', 'ioctl') + 'settimeout', 'gettimeout', 'shutdown') + +if os.name == "nt": + _socketmethods = _socketmethods + ('ioctl',) if sys.platform == "riscos": _socketmethods = _socketmethods + ('sleeptaskw',) diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 3e2d04c6824..8f69a40f0b0 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -9,6 +9,7 @@ import time import thread, threading import Queue import sys +import os import array from weakref import proxy import signal @@ -500,6 +501,15 @@ class GeneralModuleTests(unittest.TestCase): self.assertEqual(sock.proto, 0) sock.close() + def test_sock_ioctl(self): + if os.name != "nt": + return + self.assert_(hasattr(socket.socket, 'ioctl')) + self.assert_(hasattr(socket, 'SIO_RCVALL')) + self.assert_(hasattr(socket, 'RCVALL_ON')) + self.assert_(hasattr(socket, 'RCVALL_OFF')) + + class BasicTCPTest(SocketConnectedTest): def __init__(self, methodName='runTest'):