hi, i found a big performace problem with ssl_connect(). I WOULDN'T CALL IT A REAL BUG, BUT IT COULD BE A BIG PROBLEM !!! i integrated openssl inside my application and the ssl handshake needs more than 30 seconds. on the same system but under win95 it just takes 5 seconds. the problem seems to be inside the \crypto\rand\rand-win.c file. the function rand_poll() enumerates all threads, processes, modules and heaps to get the entropy of the system. this way may be very save for creating a good random seed, but imagine if there are a lot more of other processes and threads running beside openssl. rand_poll() doesn't stops enumerating until all processes (and so on) are touched. normaly there are 100 threads, 30 processes, 50 modules and 10 heaplists 'running' on my system (win2000) and the ssl handshake takes less than 2 seconds. inside my application there are 247 threads, 46 processes, 107 modules and 22 heaplists 'running' and the ssl handshake time grows up to 30 seconds. my suggestion is to build in an counter for all of these values and stop enumerating after each counter is on a specified max value. please think about it or prove me wrong.
rené ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]