Shaw Graham George wrote:
> Hi,
> 
> We have an application that provides HTTPS, either as client or server,
> for our customers.  At the moment I am doing some testing between our
> client and our server, as a result of a problem with one of our
> customers, and there is a particular sequence of events, that involves
> an unexpected SSL shutdown, that is giving an unexpected behaviour (at
> least to me).
> 
> The sequence of events goes like this:
> 
> 1.  The SSL handshake proceeds as normal.
> 2.  The client puts an HTTP request
> 3.  The server gets the HTTP request
> 4.  The client then executes an (unexpected) SSL shutdown

Is this only a SSL_shutdown() or is SSL_shutdown() followed by a socket
close by the client?

Well if you had been listening for a read, both the SSL_shutdown and the
socket close are capable of generating read events in select()

If it was only a SSL_shutdown, i suppose you should be getting
SSL_ERROR_ZERO_RETURN. In the other case SSL_ERROR_SYSCALL with
errno=EPIPE seems possible.


> 5.  The server puts the HTTP response
> 
> Here I might expect the put to fail, but all appears normal.
> 
> 6.  As an HTTP Keep-Alive request has been made, the server enters a
> wait for the next read event.
> 7.  The read event occurs (presumably due to the SSL shutdown), and now
> the get fails.
> 
> SSL_get_error() returns SSL_ERROR_SYSCALL (I would expect

Did you check errno here?

> SSL_ERROR_ZERO_RETURN for an SSL shutdown).
> ERR_get_error() returns 0.
> (SSL_get_shutdown() & SSL_RECEIVED_SHUTDOWN) returns 0.
> 
> Is this the expected behaviour?
> 
> What I am looking for is a way of identifying the shutdown at the
> server, so that I can close the connection softly.
> 
> The version is 0.9.8e.  All sockets are non-blocking.  The test platform
> is Windows - but our application runs on many platforms, I can test on
> those as well if required.
> 
> Thanks in advance,
> 
> G.

-jb
-- 
Tact is the art of making a point without making an enemy.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to