diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py index bdc1e4e25..8ceb2e460 100644 --- a/src/OpenSSL/SSL.py +++ b/src/OpenSSL/SSL.py @@ -1161,9 +1161,10 @@ def _raise_ssl_error(self, ssl, result): errno = _ffi.getwinerror()[0] else: errno = _ffi.errno - raise SysCallError(errno, errorcode.get(errno)) - else: - raise SysCallError(-1, "Unexpected EOF") + + if errno != 0: + raise SysCallError(errno, errorcode.get(errno)) + raise SysCallError(-1, "Unexpected EOF") else: # TODO: This is untested. _raise_current_error() diff --git a/tests/test_ssl.py b/tests/test_ssl.py index ca28306f4..9fc5059d2 100644 --- a/tests/test_ssl.py +++ b/tests/test_ssl.py @@ -3557,7 +3557,7 @@ def test_shutdown(self): e = self.assertRaises(Error, server.recv, 1024) # We don't want WantReadError or ZeroReturnError or anything - it's a # handshake failure. - self.assertEquals(e.__class__, Error) + assert type(e) in [Error, SysCallError] def test_unexpectedEndOfFile(self): """