Fix "Error: Success" message in Csocket

When SSL remote closes socket without handshake.
Patch is submitted to upstream Csocket too.
This commit is contained in:
Alexey Sokolov
2013-06-16 11:03:37 +04:00
parent e10b9a1ef5
commit d0a3fddd6e

View File

@@ -2851,7 +2851,23 @@ void CSocketManager::Loop()
case Csock::READ_ERR:
{
pcSock->CallSockError( GetSockError() );
bool bHandled = false;
#ifdef HAVE_LIBSSL
if (pcSock->GetSSL()) {
unsigned long iSSLError = ERR_peek_error();
if (iSSLError) {
char szError[512];
memset(( char * ) szError, '\0', 512 );
ERR_error_string_n( iSSLError, szError, 511 );
SSLErrors(__FILE__, __LINE__);
pcSock->CallSockError(GetSockError(), szError);
bHandled = true;
}
}
#endif
if (!bHandled) {
pcSock->CallSockError( GetSockError() );
}
DelSockByAddr( pcSock );
break;
}