X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=FAQ;h=ecce985a44420b0df880ddfc8975d495e9061c1a;hp=996ac04f1633fe46e9d8f0e0cf6bccb155b01d90;hb=b1d6e3f551ce7e081ed3e30d525253042ebb10a4;hpb=db70a3fd6eeb757b39aa565ed6e1cb569a831d2f diff --git a/FAQ b/FAQ index 996ac04f16..ecce985a44 100644 --- a/FAQ +++ b/FAQ @@ -6,6 +6,7 @@ OpenSSL - Frequently Asked Questions * How can I contact the OpenSSL developers? * Do I need patent licenses to use OpenSSL? * Is OpenSSL thread-safe? +* Can I use OpenSSL's SSL library with non-blocking I/O? * Why do I get a "PRNG not seeded" error message? * Why does the linker complain about undefined symbols? * Where can I get a compiled version of OpenSSL? @@ -103,6 +104,20 @@ Multi-threaded applications must provide two callback functions to OpenSSL. This is described in the threads(3) manpage. +* Can I use OpenSSL's SSL library with non-blocking I/O? + +Yes; make sure to read the SSL_get_error(3) manual page! + +A pitfall to avoid: Don't assume that SSL_read() will just read from +the underlying transport or that SSL_write() will just write to it -- +it is also possible that SSL_write() cannot do any useful work until +there is data to read, or that SSL_read() cannot do anything until it +is possible to send data. One reason for this is that the peer may +request a new TLS/SSL handshake at any time during the protocol, +requiring a bi-directional message exchange; both SSL_read() and +SSL_write() will try to continue any pending handshake. + + * Why do I get a "PRNG not seeded" error message? Cryptographic software needs a source of unpredictable data to work