}
static int data_index = -1;
+#ifdef TIZEN_EXT
+G_LOCK_DEFINE_STATIC(data_index);
+#define DATA_INDEX_LOCK(m) G_LOCK(m)
+#define DATA_INDEX_UNLOCK(m) G_UNLOCK(m)
+#else
+#define DATA_INDEX_LOCK(m)
+#define DATA_INDEX_UNLOCK(m)
+#endif
static int
handshake_thread_retrieve_certificate (SSL *ssl,
GTlsClientConnectionOpenssl *client;
GTlsConnectionBase *tls;
GTlsCertificate *cert;
+ int idx;
+ DATA_INDEX_LOCK(data_index);
+ idx = data_index;
client = SSL_get_ex_data (ssl, data_index);
+ DATA_INDEX_UNLOCK(data_index);
+ if (!client)
+ {
+ TIZEN_LOGE("SSL_get_ex_data(%p) returns NULL.", ssl);
+ return 0;
+ }
tls = G_TLS_CONNECTION_BASE (client);
+ TIZEN_LOGI("ssl[%p] client[%p] tls[%p] data_index[%d]", ssl, client, tls, idx);
+
client->ca_list = SSL_get_client_CA_list (client->ssl);
cert = g_tls_connection_get_certificate (G_TLS_CONNECTION (client));
return FALSE;
}
+ DATA_INDEX_LOCK(data_index);
if (data_index == -1) {
data_index = SSL_get_ex_new_index (0, (void *)"gtlsclientconnection", NULL, NULL, NULL);
}
SSL_set_ex_data (client->ssl, data_index, client);
+ DATA_INDEX_UNLOCK(data_index);
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
if (hostname && !g_hostname_is_ip_address (hostname))