Hi All:
I have a SSL client and a server application.The client connects to a
SSL server in a TCP socket persistence mode, i.e, it does a data
exchange with the server through a SSL connection , tears down the SSL
connection but again sends out a client_hello in the same TCP socket
connection it had earlier established with the server to perform another
cycle of data exchange.
But consider the case where the server is not running in a persistent
mode but my client is. After the first cycle of data exchange the server
closes the SSL connection as well as the underlying TCP. When the client
in persistent mode tries for the second cycle of data exchange, it
tries SSL_connect(ssl) in the broken TCP socket connection .
SSL_get_error method returns SSL_ERROR_SSL. And SSL_get_error method
returns SSL_ERROR_SSL even for SSL handshake failures such as cipher
suite mismatch between client and server. As such the client application
is not able to distinguish between the SSL handshake failure(cipher
suite mismatch) in valid TCP connection and loss of TCP connection with
the server in the first place.
Is their any way to make out for broken TCP connection, so that the
client can create socket and connect to server for next round of data
exchange.
Thanks and Regards,
Prabhu. S