Hello,
Hello Ahmad,
I have also defined an object model and the workaround to this problem is like this.
I made a static list of class pointers, thus whenever an object is formed it is put into that list.
Now in the callback i had the ssl pointe (SSL*) with me and every class had the ssl pointer. I simply compared and found the exact class. you can also define a map(std::map<SSL*, CSSLClass>).
And why didn't you define simple C-functions that get the pointer to the object with a SSL_get_app_data() (or SSL_get_ex_data()) from the SSL structure and call the wanted method of the object there ?
something like:
[...]
static void callback_info(const SSL *ssl,int type,int val)
{
MyObject *obj=(MyObject*)SSL_get_app_data(ssl);
if (!obj) return;
obj->info(ssl,type,val);
}
[...]
void MyObject::Prepare(SSL* ssl)
{
SSL_set_app_data(ssl,this);
SSL_set_info_callback(ssl,callback_info);
[...]
}
[...]Bye
Goetz
-- DMCA: The greed of the few outweighs the freedom of the many
smime.p7s
Description: S/MIME Cryptographic Signature
