> > > > I have server SSL written in C and client SSL written by python. Also, I > > use > > > > SSL non blocking in server SSL. > > > > Beginning If I trying send any data to client, it's ok. In one moment I > > get > > > > SSL_ERROR_WANT_WRITE. Because I have non blocking SSL in server, my > > program > > > > is suspend. > > > > Maybe, someone have similar problem ? > > > > I think that it is not correct that I have SSL_ERROR_WRITE. > > > > > > Getting non-blocking IO right is quite difficult. There is a good > > > starter explanation in the OpenSSL book pages 155 through 166, > > > especially the section "Non-blocking IO" starting on page 159. > > > > > > Viega, Messier & Chandra; Network Security with OpenSSL, > > > 2002, O'Reilly & Associates, Sebastapol CA USA > > > > > > http://www.everythinglinux.com.au/item/OR270X > > > > > > I would have given you the OReilly URL but their web site seems > > > REALLY messed up today -- going to oreilly.com says "the proxy could > > > not open the server"? > > > > > > > I read about non blocking IO in documentation of OpenSSL. There is written > > that I have to call SSL_write when I get SSL_ERROR_WRITE. What I'm doing bad > > ? > > > > Where does it say that? In general you should wait until the condition has > been satisfied (in this case that its OK to write data) and retry the failed > call. >
"If the underlying BIO is non-blocking, SSL_write() will also return, when the underlying BIO could not satisfy the needs of SSL_write() to continue the operation. In this case a call to SSL_get_error(3) with the return value of SSL_write() will yield SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE. As at any time a re-negotiation is possible, a call to SSL_write() can also cause read operations! The calling process then must repeat the call after taking appropriate action to satisfy the needs of SSL_write()" ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
