Blocking on a non-blocking socket?

Neil Horman nhorman at openssl.org
Thu May 23 13:42:18 UTC 2024


from:
https://www.openssl.org/docs/man1.0.2/man3/SSL_CTX_set_mode.html

SSL_MODE_AUTO_RETRY in non-blocking mode should cause SSL_reaa/SSL_write to
return -1 with an error code of WANT_READ/WANT_WRITE until such time as the
re-negotiation has completed.  I need to confirm thats the case in the
code, but it seems to be.  If the underlying socket is in non-blocking
mode, there should be no way for calls to block in SSL_read/SSL_write on
the socket read/write system call.

On Thu, May 23, 2024 at 8:15 AM Wiebe Cazemier <wiebe at halfgaar.net> wrote:

> ----- Original Message -----
> > From: "Neil Horman" <nhorman at openssl.org>
> > To: "udhayakumar" <udhayakumar at fatpipeinc.com>
> > Cc: "Wiebe Cazemier" <wiebe at halfgaar.net>, openssl-users at openssl.org
> > Sent: Thursday, 23 May, 2024 22:05:22
> > Subject: Re: Blocking on a non-blocking socket?
>
> > do you have a stack trace of the thread hung in this state? That would
> confirm
> > whats going on here
> > Neil
>
> Hi Neil,
>
> No, I don't. I wasn't there to attach a debugger. It recovered before I
> could do that. And despite a lot of effort, I can't reproduce it either.
>
> But in general, what does SSL_MODE_AUTO_RETRY on/off change in
> non-blocking mode? The documentation is too vague for me. It says:
>
> > Setting SSL_MODE_AUTO_RETRY for a nonblocking BIO will process
> non-application data records until either no more data is available or an
> application data record has been processed.
>
> But how is that different from disabling SSL_MODE_AUTO_RETRY?
>
> Regards,
>
> Wiebe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mta.openssl.org/pipermail/openssl-users/attachments/20240523/ba0307d5/attachment.htm>


More information about the openssl-users mailing list