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]