On Fri, Oct 23, 2009 at 09:34:22AM -0700, Jason Pettiss wrote: > > It is possible to use non-blocking SSL_read() SSL_write() calls that > > are interleaved, but not without a mutex or a separate thread that > > owns all SSL I/O that consumes requests to read/write. > > > > It is simpler to use two SSL connections. SSL is a > > state-machine, not a pipe.
Two SSL connections over two sockets of course. Unless you want to implement a stream multiplexor between TCP and SSL. Then you could indeed build two SSL objects one for each logical direction of data transfer. You can do nifty things with bio_pairs(), but building multiple streams over TCP is probably too much complexity for what you want. > Two unidirectional sockets is my last resort here... in my > experience unidirectional traffic is horrible for latency > and without disabling TCP_NODELAY, > it kills your throughput (assuming you're passing smallish messages). If you are proxying an inter-active protocol, you need to do it over a single socket to avoid Nagle delays (or set TCP_NODELAY, which is fine if you never send small packets unnecessarily). If you are moving large files in two directions, just avoid writes that don't fill the socket buffer. -- Viktor. ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org