hello Thao Thank you for trying but no, this does not help. If you want to build a single threaded scalable server using nonblocking i/o, you need to use exclusively nonblocking i/o. You can't conveniently block on one connection while it sorts itself out, as you put the other connections temporarily out of action. This is fine on a single connection server, but not if you want to support lots of connections.
Thanks anyway. Terry On Tue, 30 Jan 2007 14:11:42 -0600, "Dinh, Thao V CIV NSWCDD, K72" <[EMAIL PROTECTED]> said: > Terry > I ran into same problem a while ago. I had a blocking server, waiting > for client to connect. I had non-blocking client connected to server, It > never pass SSL_connect(). I changed non-blocking to blocking I/O BEFORE > I called SSL_connect(). It worked fined. It seem to me you need to using > blocking socket for SSL_connect to sit there to exchange all the > certificate,ciphes.... You can use non-blocking socket for SSL_connect, > but you have to put into a loop to call SSL_connect again after you > received SSL_WANt_READ or SSL_Want _write. > > I hopes it help. > TD > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of terry johnston > Sent: Monday, January 29, 2007 16:16 > To: openssl-users@openssl.org > Subject: openssl with non-blocking comms > > Hello All. I am trying to implement openssl with a server that uses an > event notification library under Linux. I am using bio pairs to separate > the non-blocking comms from the ssl layer. I am currently not able to > get past the first > SSL_accept() call. > > Each new client connection does the following... > > - gets accepted normally > - creates a bio pair > - sets up read & write event notification > - receives a read notification - reads data & adds it to the network bio > using BIO_write() > - does a SSL_accept(), which returns -1 > - calls SSL_get_error(), which returns 111 - "not yet implemented"? > - calls BIO_ctrl_pending() on the network bio, which shows there is > nothing to get (presume I would call a BIO_read() to get any data for > on-sending) > - adds another read event notification but nothing arrives > > what am I doing wrong?! > > thank you in advance > Terry Johnston > -- > terry johnston > [EMAIL PROTECTED] > > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager [EMAIL PROTECTED] > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager [EMAIL PROTECTED] -- terry johnston [EMAIL PROTECTED] ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]