I have a question about OpenSSL 0.9.7.

On the following web page:

"void CRYPTO_set_id_callback(unsigned long (*id_function)(void));

id_function(void) is a function that returns a thread ID. 
It is not needed on Windows nor on platforms where getpid() returns 
a different ID for each thread (most notably Linux)."

I have some third party C++ code which tries to implement this
id_function as:

   return static_cast<unsigned long>(pthread_self());

pthread_self() returns something of type pthread_t.
This code works under Linux, because pthread_t is mapped to an integer value.

However, on FreeBSD, pthread_t is a pointer to struct pthread, so this
code does not compile:

OpenSSLPluginI.cpp: In function `long unsigned int IceSSL::idFunction()':
OpenSSLPluginI.cpp:153: invalid static_cast from type `pthread*' to type `long
   unsigned int'

Is there a way to implement the id_function() for OpenSSL so that
it works portably across FreeBSD and Linux?

Craig Rodrigues        

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to