[openssl-users] Graceful shutdown of TLS connection for blocking sockets

Jakob Bohm jb-openssl at wisemo.com
Mon Oct 9 14:29:25 UTC 2017

On 09/10/2017 15:31, Thomas J. Hruska wrote:
> On 10/9/2017 1:32 AM, Michel wrote:
>>> With blocking sockets, you just loop back around and repeat the same 
>>> call
>> if either of those messages are returned by SSL_get_error(). No select()
>> required.
>> Yes, you have to repeat the same call, but select() is still usefull,
>> especially with blocking sockets.
> And leads to incorrect code and weird blocking scenarios.  Been there, 
> done that.  You're using select() wrong.  If you want to block, then 
> block and don't try to hack around it.  Otherwise use non-blocking.
> This common misunderstanding of select() is precisely why calling it 
> with a blocking descriptor should trigger an exception that kills the 
> application.  Doing so would bring a quick end to a lot of bad code.
The system documentation (at least on Linux) isn't just silent
about how select behaves with blocking sockets.  It is
*explicitly* written to describe how it works with blocking
sockets (but is mostly silent about non-blocking sockets).
(My copy is marked as being from Linux man-pages project version

I suggest you find a good authoritative source for your claim
that select() should not be used with blocking sockets.


Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded

More information about the openssl-users mailing list