Ralph via RT <[EMAIL PROTECTED]>: > But so far, I can tell you that when SSL_get_error() returns > SSL_ERROR_SYSCALL and you inspect errno, it tells EWOULDBLOCK or EAGAIN. > By repeating the SSL_* call as long as this condition occurs, I can > overcome the problem and the SSL handshake and communication works > perfectly. Oh...it's in a multi-threaded application, too! Maybe this > helps (OpenSSL compiled with the correct switch for MT - I hope)
If OpenSSL is *not* compiler with correct switches for multithreading, that would explain -- in that case, SSL_get_error() could be reading the wrong copy of errno and thus not find the EWOULDBLOCK/EAGAIN code. Here's something to try: find the 'errno' definition for multi-threading in the system header files, which should involve some function call; then use 'nm' to see if that function is mentioned in the OpenSSL object files that you are linking with. (bss_sock.o is the object file to look at.) -- Bodo Möller <[EMAIL PROTECTED]> PGP http://www.informatik.tu-darmstadt.de/TI/Mitarbeiter/moeller/0x36d2c658.html * TU Darmstadt, Theoretische Informatik, Alexanderstr. 10, D-64283 Darmstadt * Tel. +49-6151-16-6628, Fax +49-6151-16-6036 ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]