From 34fbacdc1151480ce5a216785963e3451ab94aca Mon Sep 17 00:00:00 2001
From: Antoine Pitrou <solipsis@pitrou.net>
Date: Mon, 26 Apr 2010 17:28:35 +0000
Subject: Merged revisions 80507 via svnmerge from
 svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80507 | antoine.pitrou | 2010-04-26 19:23:33 +0200 (lun., 26 avril 2010) | 4 lines

  When calling getpeername() in SSLSocket.__init__, only silence exceptions
  caused by the "socket not connected" condition.
........
---
 Lib/ssl.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Lib/ssl.py b/Lib/ssl.py
index 8f88d15..1af9fa9 100644
--- a/Lib/ssl.py
+++ b/Lib/ssl.py
@@ -75,8 +75,10 @@ from _ssl import \
      SSL_ERROR_INVALID_ERROR_CODE
 
 from socket import socket, _fileobject, _delegate_methods
+from socket import error as socket_error
 from socket import getnameinfo as _getnameinfo
 import base64        # for DER-to-PEM translation
+import errno
 
 class SSLSocket(socket):
 
@@ -104,7 +106,9 @@ class SSLSocket(socket):
         # see if it's connected
         try:
             socket.getpeername(self)
-        except:
+        except socket_error, e:
+            if e.errno != errno.ENOTCONN:
+                raise
             # no, no connection yet
             self._sslobj = None
         else:
-- 
cgit v0.12