> > The AUTO_RETRY flag disables a case where the SSL/TLS code would
> > signal a retry even
> > though the underlying transport did not during a session
> > renegotiation. This is
> > there to support some applications which brokenly use select() and
> > blocking I/O.

> Now you have me curious:  What would be a broken use of select and
> blocking I/O? I use select before a call to SSL_read in order to
> facilitate a timeout. Is this wrong (or broken)?

        Yes, it's wrong/broken.

> (If I receive one of
> the "WANT" errors, I just restart the I/O however.) My program makes
> the assumption that if it hears nothing on the read side of the socket
> during a period of time, that something is wrong.

        But what if SSL_read didn't get enough data to decode anything? Then it
will wind up blocking on the socket, which is exactly what you did't want to
happen.

> Currently, I don't like the way my I/O loop is working so I'm probably
> going to switch to non-blocking anyway.

        If you never, ever want to block, just set the socket non-blocking.
Otherwise, there can always be corner cases where you can block
indefinitely.

        DS


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

Reply via email to