Solveig Viste wrote:

> I have an application which is occasionally hanging.
> I have tracked it down to an SSL_shutdown call.

> The value (0) returned from the shutdown call indicates
> that the shutdown is not finished.

As happens with non-blocking sockets, sometimes the operation does not
complete and you have to retry the operation later.

> The shutdown man page indicates that a second call to
> SSL_shutdown should cause a bidirectional shutdown,

A subsequent retry of the operation will complete if and only if whatever
the first shutdown was waiting for has happened.

> and I thought this is indeed what the application calls for.
> However, when I make the second call to SSL_shutdown,
> the value returned is still 0 (shutdown not finished)
> rather than 1 (shutdown complete) or -1 (shutdown not successful).

Did you check the error code? Was it WANT_READ or WANT_WRITE? Did you wait
for the appropriate operation to be ready?

> Is this recently added bahavior? Does the SSL handle
> need to have certain properties in order to get a
> bidirectional shutdown?

You need to handle an organized shutdown the way you handle any other
operation on a non-blocking connection that might take time to complete.

DS


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to