Blocking on a non-blocking socket?
Wiebe Cazemier
wiebe at halfgaar.net
Thu May 23 13:55:30 UTC 2024
Hi Neil,
----- Original Message -----
> From: "Neil Horman" <nhorman at openssl.org>
> To: "Wiebe Cazemier" <wiebe at halfgaar.net>
> Cc: "udhayakumar" <udhayakumar at fatpipeinc.com>, openssl-users at openssl.org
> Sent: Thursday, 23 May, 2024 23:42:18
> Subject: Re: Blocking on a non-blocking socket?
> from:
> [ https://www.openssl.org/docs/man1.0.2/man3/SSL_CTX_set_mode.html |
> 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.
I still don't really see what the difference is between SSL_MODE_AUTO_RETRY on or off in non-blocking mode?
The person at [1] seems to have had a similar issue, and was convinced clearing SSL_MODE_AUTO_RETRY fixed it. But I agree, I don't know how it could be. OpenSSL would have to remove the O_NONBLOCK, or do select/poll, and I can't find it doing that.
I hope it happens again soon and I'm around to attach a debugger.
Regards,
Wiebe
[1] https://github.com/alanxz/rabbitmq-c/issues/586
More information about the openssl-users
mailing list