Index: tlsIO.c ================================================================== --- tlsIO.c +++ tlsIO.c @@ -932,10 +932,17 @@ Tls_Error(statePtr, (char *)ERR_reason_error_string(ERR_get_error())); statePtr->flags |= TLS_TCL_HANDSHAKE_FAILED; *errorCodePtr = ECONNABORTED; return -1; + } else if (rc == SSL_ERROR_SYSCALL) { + dprintf("Got an error from our BIO"); + Tls_Error(statePtr, + (char *)ERR_reason_error_string(ERR_get_error())); + statePtr->flags |= TLS_TCL_HANDSHAKE_FAILED; + *errorCodePtr = ECONNABORTED; + return -1; } else if (BIO_should_retry(statePtr->bio)) { if (statePtr->flags & TLS_TCL_ASYNC) { dprintf("E! "); *errorCodePtr = EAGAIN; return -1;