[EMAIL PROTECTED] wrote:
Hi,
I am using openssl-0.9.8.
I have a non-blocking multi-threaded application running as a proxy and I am 
using BIO pairs and a filter (SSL)BIO for doing the SSL part ( similar to 
ssltest.c ).

Since I want to be able to allow both sslv3 and tlsv1, I am passing 
SSLv23_server_method to SSL_CTX_new.

In my application, I am calling BIO_ctrl_pending on the SSL BIO and this in 
turn calls the ssl_pending function pointer and this pointer is initialized to 
ssl_undefined_const_function for SSLv23_server_method.
The result is that an error gets generated in the current thread's error queue, 
in spite of BIO_ctrl_pending returning the correct value and my BIO_read fails 
at a later ( random ) time due to the above error.
I have set both the static and dynamic locking callbacks using 
CRYPTO_set_locking_callback and CRYPTO_set_dynlock_lock_callback.

I wanted to know why is ssl_pending initialized to ssl_undefined_const_function 
for SSLv23_server_method?
but it is defined correctly for SSLv3_server_method and TLSv1_server_method?


I believe that ssl23 doesn't do the SSL stuff completely, just enough to read the Client Hello message and figure out which protocol is being talked, then it switches over to the appropriate <Protocol>_server_method().

From your error it seems that phase is still not over.

-jb
--
I used to think I was indecisive, but now I'm not so sure.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to