]> granicus.if.org Git - python/commitdiff
socket.ioctl is only available on Windows
authorChristian Heimes <christian@cheimes.de>
Fri, 4 Jan 2008 15:48:06 +0000 (15:48 +0000)
committerChristian Heimes <christian@cheimes.de>
Fri, 4 Jan 2008 15:48:06 +0000 (15:48 +0000)
Lib/socket.py
Lib/test/test_socket.py

index 7ce28699c95afed96dd9069e25a96ff7a415f8dc..6b4b743f68072c014f8a3a35caadaac2a27cda2d 100644 (file)
@@ -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',)
index 3e2d04c6824fc892c3f97f2bb671c634f974d52d..8f69a40f0b043c36c0b11cd00b5d0507bf13e19f 100644 (file)
@@ -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'):