Trying to fix #8108. Will watch the buildbot(s).

This commit is contained in:
Antoine Pitrou 2010-03-24 21:55:12 +00:00
parent 36b9fbb803
commit 914bdbb495
1 changed files with 11 additions and 2 deletions

View File

@ -315,11 +315,20 @@ if ssl is not None:
raise raise
def close(self): def close(self):
ssl_want_read_or_write = False
try: try:
if isinstance(self.socket, ssl.SSLSocket): if isinstance(self.socket, ssl.SSLSocket):
if self.socket._sslobj is not None: if self.socket._sslobj is not None:
try:
self.socket.unwrap() self.socket.unwrap()
except ssl.SSLError, err:
if err.args[0] in (ssl.SSL_ERROR_WANT_READ,
ssl.SSL_ERROR_WANT_WRITE):
ssl_want_read_or_write = True
else:
raise
finally: finally:
if not ssl_want_read_or_write:
super(SSLConnection, self).close() super(SSLConnection, self).close()