[pypy-commit] pypy py3k: Remove "issuer" and "server" attributes from ssl socket.

amauryfa noreply at buildbot.pypy.org
Sat Dec 17 23:01:06 CET 2011


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r50639:6a82b1beaf24
Date: 2011-12-17 14:24 +0100
http://bitbucket.org/pypy/pypy/changeset/6a82b1beaf24/

Log:	Remove "issuer" and "server" attributes from ssl socket. + Fix
	shutdown test

diff --git a/pypy/module/_ssl/interp_ssl.py b/pypy/module/_ssl/interp_ssl.py
--- a/pypy/module/_ssl/interp_ssl.py
+++ b/pypy/module/_ssl/interp_ssl.py
@@ -328,25 +328,13 @@
         self.w_socket = None
         self.ssl = lltype.nullptr(SSL.TO)
         self.peer_cert = lltype.nullptr(X509.TO)
-        self._server = lltype.malloc(rffi.CCHARP.TO, X509_NAME_MAXLEN, flavor='raw')
-        self._server[0] = '\0'
-        self._issuer = lltype.malloc(rffi.CCHARP.TO, X509_NAME_MAXLEN, flavor='raw')
-        self._issuer[0] = '\0'
         self.shutdown_seen_zero = False
 
-    def server(self, space):
-        return space.wrap(rffi.charp2str(self._server))
-
-    def issuer(self, space):
-        return space.wrap(rffi.charp2str(self._issuer))
-
     def __del__(self):
         if self.peer_cert:
             libssl_X509_free(self.peer_cert)
         if self.ssl:
             libssl_SSL_free(self.ssl)
-        lltype.free(self._server, flavor='raw')
-        lltype.free(self._issuer, flavor='raw')
 
     @unwrap_spec(data='bufferstr')
     def write(self, space, data):
@@ -513,13 +501,6 @@
         if self.peer_cert:
             libssl_X509_free(self.peer_cert)
         self.peer_cert = libssl_SSL_get_peer_certificate(self.ssl)
-        if self.peer_cert:
-            libssl_X509_NAME_oneline(
-                libssl_X509_get_subject_name(self.peer_cert),
-                self._server, X509_NAME_MAXLEN)
-            libssl_X509_NAME_oneline(
-                libssl_X509_get_issuer_name(self.peer_cert),
-                self._issuer, X509_NAME_MAXLEN)
 
     def shutdown(self, space):
         w_socket = self._get_socket(space)
@@ -827,8 +808,6 @@
     return space.newtuple([w_name, w_value])
 
 SSLSocket.typedef = TypeDef("_SSLSocket",
-    server = interp2app(SSLSocket.server),
-    issuer = interp2app(SSLSocket.issuer),
     write = interp2app(SSLSocket.write),
     pending = interp2app(SSLSocket.pending),
     read = interp2app(SSLSocket.read),
diff --git a/pypy/module/_ssl/test/test_ssl.py b/pypy/module/_ssl/test/test_ssl.py
--- a/pypy/module/_ssl/test/test_ssl.py
+++ b/pypy/module/_ssl/test/test_ssl.py
@@ -95,20 +95,6 @@
         self.s.close()
         del ss; gc.collect()
 
-    def test_server(self):
-        import ssl, gc
-        ss = ssl.wrap_socket(self.s)
-        assert isinstance(ss.server(), str)
-        self.s.close()
-        del ss; gc.collect()
-
-    def test_issuer(self):
-        import ssl, gc
-        ss = ssl.wrap_socket(self.s)
-        assert isinstance(ss.issuer(), str)
-        self.s.close()
-        del ss; gc.collect()
-
     def test_write(self):
         import ssl, gc
         ss = ssl.wrap_socket(self.s)
@@ -142,18 +128,16 @@
         del ss; gc.collect()
 
     def test_shutdown(self):
-        import ssl, sys, gc
-        ss = socket.ssl(self.s)
+        import socket, ssl, sys, gc
+        ss = ssl.wrap_socket(self.s)
         ss.write(b"hello\n")
         try:
-            result = ss.shutdown()
+            ss.shutdown(socket.SHUT_RDWR)
         except socket.error, e:
-            # xxx obscure case; throwing errno 0 is pretty odd...
             if e.errno == 0:
-                skip("Shutdown raised errno 0. CPython does this too")
+                pass  # xxx obscure case; throwing errno 0 is pretty odd...
             raise
-        assert result is self.s._sock
-        raises(ssl.SSLError, ss.write, b"hello\n")
+        raises(AttributeError, ss.write, b"hello\n")
         del ss; gc.collect()
 
 class AppTestConnectedSSL_Timeout(AppTestConnectedSSL):


More information about the pypy-commit mailing list