summaryrefslogtreecommitdiffstats
path: root/FAQ
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2000-11-17 10:25:46 +0000
committerBodo Möller <bodo@openssl.org>2000-11-17 10:25:46 +0000
commitb1d6e3f551ce7e081ed3e30d525253042ebb10a4 (patch)
tree9c3f314641e56d9cd910ce554a540a9f6a5c8833 /FAQ
parentdb70a3fd6eeb757b39aa565ed6e1cb569a831d2f (diff)
Documentation on using the SSL library with non-blocking I/O.
Diffstat (limited to 'FAQ')
-rw-r--r--FAQ15
1 files changed, 15 insertions, 0 deletions
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