On Wed, 25 May 2005, Ian FREISLICH wrote:
> If the underlying BIO is non-blocking, SSL_write() will also return,
> when the underlying BIO could not satisfy the needs of SSL_write() to
> continue the operation. In this case a call to SSL_get_error(3) with
> the return value of SSL_write() will yield SSL_ERROR_WANT_READ or
> SSL_ERROR_WANT_WRITE. As at any time a re-negotiation is possible, a
> call to SSL_write() can also cause read operations! The calling process
> then must repeat the call after taking appropriate action to satisfy
> the needs of SSL_write(). The action depends on the underlying BIO.
> When using a non-blocking socket, nothing is to be done, but select()
> can be used to check for the required condition. When using a buffering
> BIO, like a BIO pair, data must be written into or retrieved out of the
> BIO before being able to continue.
Fascinating, but I'm afraid that's all completely over my head! I'm
really not good at the SSL stuff, and remember, Exim supports GnuTLS as
well as OpenSSL. What is currently there seems to work, and as I have
far too much other stuff to do, my judgement at the moment is to leave
well alone.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book