While searching for an answer to this question I found this sample code which looks like just what I need except it calls
select_wait()
which is defined in non_blocking.h but which is otherwise unlocatable.
Is select_wait() proprietary code? Is it an entrypoint in some DLL I can get? How do I duplicate whatever select_wait() does? Does it look safe to simply ignore select_wait() and immediately retry the BIO_read/write calls?
Update: In testing the code, the select_wait() appears necessary because BIO_read will hang if input isn't available. However, RSA's sample code does at most one successful BIO_read before breaking out of the for-loop, so their code also would fail to accept a POST from Chrome as described in the original question.