]> granicus.if.org Git - python/commitdiff
Issue 27744: Check for AF_ALG support in Kernel
authorChristian Heimes <christian@python.org>
Mon, 5 Sep 2016 22:37:46 +0000 (00:37 +0200)
committerChristian Heimes <christian@python.org>
Mon, 5 Sep 2016 22:37:46 +0000 (00:37 +0200)
Lib/test/test_socket.py

index 6fc6e277c0b5a8abc08bcd391817e9c2c7e3c98f..1ee6237fa1b1c52e2d957e53189cadb304410866 100644 (file)
@@ -65,10 +65,22 @@ def _have_socket_rds():
         s.close()
     return True
 
+def _have_socket_alg():
+    """Check whether AF_ALG sockets are supported on this host."""
+    try:
+        s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
+    except (AttributeError, OSError):
+        return False
+    else:
+        s.close()
+    return True
+
 HAVE_SOCKET_CAN = _have_socket_can()
 
 HAVE_SOCKET_RDS = _have_socket_rds()
 
+HAVE_SOCKET_ALG = _have_socket_alg()
+
 # Size in bytes of the int type
 SIZEOF_INT = array.array("i").itemsize
 
@@ -5325,7 +5337,8 @@ class SendfileUsingSendfileTest(SendfileUsingSendTest):
     def meth_from_sock(self, sock):
         return getattr(sock, "_sendfile_use_sendfile")
 
-@unittest.skipUnless(hasattr(socket, "AF_ALG"), 'AF_ALG required')
+
+@unittest.skipUnless(HAVE_SOCKET_ALG, 'AF_ALG required')
 class LinuxKernelCryptoAPI(unittest.TestCase):
     # tests for AF_ALG
     def create_alg(self, typ, name):