Commit 1a43d573 authored by D Scott Phillips's avatar D Scott Phillips Committed by Sebastian Dröge

dtls: Set openssl's threadid the 1.0.x way

For pre-1.1.x openssl, a callback to set the thread id needs to be
provided to openssl. In 0.9.x the thread id was an unsigned long. In
1.0.x it was expanded to be able to hold a void*. Here we change to use
the 1.0.x API so that the thread id can always hold a GThread*, even on
platforms like msvc x64 where unsigned long is only 32 bits.

All of this is still #ifdef'd out of existence when building with
openssl 1.1.x or later which changed the thread API again, and does not
need a thread id callback.

https://bugzilla.gnome.org/show_bug.cgi?id=775292
parent fc284f7b
......@@ -100,10 +100,10 @@ ssl_locking_function (gint mode, gint lock_num, const gchar * file, gint line)
}
}
static gulong
ssl_thread_id_function (void)
static void
ssl_thread_id_function (CRYPTO_THREADID * id)
{
return (gulong) g_thread_self ();
CRYPTO_THREADID_set_pointer (id, g_thread_self ());
}
#endif
......@@ -138,7 +138,7 @@ _gst_dtls_init_openssl (void)
g_rw_lock_init (&ssl_locks[i]);
}
CRYPTO_set_locking_callback (ssl_locking_function);
CRYPTO_set_id_callback (ssl_thread_id_function);
CRYPTO_THREADID_set_callback (ssl_thread_id_function);
}
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment