Hey

I'm using the BIO abstraction for reading/writing to sockets - a small part of the BIO_read method is unclear: For a blocking socket, will the BIO_read call block until the length provided in the call is filled in the buffer, or will it return as soon as it managed to read anything from the socket?

I see that the underlying implementation uses recv() - recv blocks until something is available: when something is available for reading, read up to len bytes and copy it to the provided buffer, then return, i.e. the length is used as a maximum value. From reading the openssl code I think that BIO_read behaves in the same way as recv - which means that if I want to read a specific number of bytes (no more, no less), I need to loop until I get everything I need. Can anyone confirm this ?

Thank you,

--
Laura
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to