In my multithreaded HTTPS server application running on Windows 2000, SSL_accept() occasionally returns -1 and SSL_get_error() returns SSL_ERROR_SYSCALL when there are many simultaneous connections. A rough figure is about 1 SSL_ERROR_SYSCALL in every 100 SSL_accept(). Neither the preceding calls to accept() or SSL_set_fd() indicate any error with the socket.
I have already followed the FAQ and provided the two callback functions required by OpenSSL to operate in multithreaded applications. My implementation is based on those found in crypto\threads\mttest.c The many simultaneous connections I referred to earlier is generated by browsing an HTML page which has over 30 images, external JavaScript and stylesheets using IE 6. After IE has parsed the HTML page, it will fetch some of those external files simultaneously. The Solaris 8 version of my application have the same problem too although it happens less frequently. Instead of returning -1, SSL_accept() returns 0 but SSL_get_error() also returns SSL_ERROR_SYSCALL. Adding to the complication is the fact that the architecture of the Solaris version of my application is slightly different as it fork()s instead of creating a thread to handle the incoming connection after accept() is successful. I am using OpenSSL 0.9.6l and blocking sockets and not BIO. Is there anything I can do to figure out what's wrong? My application doesn't crash but I just get occasional SSL_ERROR_SYSCALL from SSL_accept() when there are many simultaneous connections from IE. Michael Lee ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]