Lines Matching refs:AppData
5487 class AppData {
5506 static AppData* create() {
5507 UniquePtr<AppData> appData(new AppData());
5508 if (pipe(appData.get()->fdsEmergency) == -1) {
5509 ALOGE("AppData::create pipe(2) failed: %s", strerror(errno));
5512 if (!setBlocking(appData.get()->fdsEmergency[0], false)) {
5513 ALOGE("AppData::create fcntl(2) failed: %s", strerror(errno));
5516 if (MUTEX_SETUP(appData.get()->mutex) == -1) {
5520 return appData.release();
5523 ~AppData() {
5535 AppData() :
5607 * @param fdObject The FileDescriptor, since appData->fileDescriptor should be NULL
5608 * @param appData The application data structure with mutex info etc.
5617 static int sslSelect(JNIEnv* env, int type, jobject fdObject, AppData* appData, int timeout_millis) {
5632 JNI_TRACE("sslSelect type=%s fd=%d appData=%p timeout_millis=%d",
5633 (type == SSL_ERROR_WANT_READ) ? "READ" : "WRITE", intFd, appData, timeout_millis);
5644 FD_SET(appData->fdsEmergency[0], &rfds);
5646 int maxFd = (intFd > appData->fdsEmergency[0]) ? intFd : appData->fdsEmergency[0];
5661 JNI_TRACE("sslSelect %s fd=%d appData=%p timeout_millis=%d => %d",
5663 fd.get(), appData, timeout_millis, result);
5675 if (MUTEX_LOCK(appData->mutex) == -1) {
5687 if (FD_ISSET(appData->fdsEmergency[0], &rfds)) {
5690 read(appData->fdsEmergency[0], &token, 1);
5697 appData->waitingThreads--;
5699 MUTEX_UNLOCK(appData->mutex);
5711 static void sslNotify(AppData* appData) {
5719 write(appData->fdsEmergency[1], &token, 1);
5724 static AppData* toAppData(const SSL* ssl) {
5725 return reinterpret_cast<AppData*>(SSL_get_app_data(ssl));
5738 AppData* appData = toAppData(ssl);
5739 JNIEnv* env = appData->env;
5741 ALOGE("AppData->env missing in cert_verify_callback");
5745 jobject sslHandshakeCallbacks = appData->sslHandshakeCallbacks;
5779 AppData* appData = toAppData(ssl);
5780 JNIEnv* env = appData->env;
5782 ALOGE("AppData->env missing in info_callback");
5791 jobject sslHandshakeCallbacks = appData->sslHandshakeCallbacks;
5819 AppData* appData = toAppData(ssl);
5820 JNIEnv* env = appData->env;
5822 ALOGE("AppData->env missing in client_cert_cb");
5830 jobject sslHandshakeCallbacks = appData->sslHandshakeCallbacks;
5919 AppData* appData = toAppData(ssl);
5920 if (appData->ephemeralRsa.get() == NULL) {
5922 appData->ephemeralRsa.reset(rsaGenerateKey(keylength));
5924 JNI_TRACE("ssl=%p tmp_rsa_callback => %p", ssl, appData->ephemeralRsa.get());
5925 return appData->ephemeralRsa.get();
5988 AppData* appData = toAppData(ssl);
5989 if (appData->ephemeralEc.get() == NULL) {
5991 appData->ephemeralEc.reset(ecGenerateKey(keylength));
5993 JNI_TRACE("ssl=%p tmp_ecdh_callback => %p", ssl, appData->ephemeralEc.get());
5994 return appData->ephemeralEc.get();
6785 AppData* appData = toAppData(ssl);
6786 JNI_TRACE("AppData=%p", appData);
6787 unsigned char* npnProtocols = reinterpret_cast<unsigned char*>(appData->npnProtocolsData);
6788 size_t npnProtocolsLength = appData->npnProtocolsLength;
6813 AppData* appData = toAppData(ssl);
6814 unsigned char* npnProtocols = reinterpret_cast<unsigned char*>(appData->npnProtocolsData);
6817 *outlen = appData->npnProtocolsLength;
6920 AppData* appData = AppData::create();
6921 if (appData == NULL) {
6924 JNI_TRACE("ssl=%p NativeCrypto_SSL_do_handshake appData => 0", ssl);
6928 SSL_set_app_data(ssl, reinterpret_cast<char*>(appData));
6929 JNI_TRACE("ssl=%p AppData::create => %p", ssl, appData);
6938 while (appData->aliveAndKicking) {
6941 if (!appData->setCallbackState(env, shc, fdObject, npnProtocols)) {
6948 appData->clearCallbackState();
6977 appData->waitingThreads++;
6978 int selectResult = sslSelect(env, sslError, fdObject, appData, timeout_millis);
7167 AppData* appData = toAppData(ssl);
7168 if (appData == NULL) {
7172 while (appData->aliveAndKicking) {
7175 if (MUTEX_LOCK(appData->mutex) == -1) {
7181 if (!appData->setCallbackState(env, shc, fdObject, NULL)) {
7182 MUTEX_UNLOCK(appData->mutex);
7186 appData->clearCallbackState();
7210 && appData->waitingThreads > 0) {
7211 sslNotify(appData);
7217 appData->waitingThreads++;
7220 MUTEX_UNLOCK(appData->mutex);
7236 int selectResult = sslSelect(env, sslError, fdObject, appData, read_timeout_millis);
7367 AppData* appData = toAppData(ssl);
7368 if (appData == NULL) {
7374 while (appData->aliveAndKicking && ((len > 0) || (ssl->s3->wbuf.left > 0))) {
7377 if (MUTEX_LOCK(appData->mutex) == -1) {
7383 if (!appData->setCallbackState(env, shc, fdObject, NULL)) {
7384 MUTEX_UNLOCK(appData->mutex);
7389 appData->clearCallbackState();
7414 && appData->waitingThreads > 0) {
7415 sslNotify(appData);
7421 appData->waitingThreads++;
7424 MUTEX_UNLOCK(appData->mutex);
7444 int selectResult = sslSelect(env, sslError, fdObject, appData, write_timeout_millis);
7555 AppData* appData
7556 if (appData != NULL) {
7557 appData->aliveAndKicking = 0;
7560 sslNotify(appData);
7561 sslNotify(appData);
7586 AppData* appData = toAppData(ssl);
7587 if (appData != NULL) {
7588 if (!appData->setCallbackState(env, shc, fdObject, NULL)) {
7605 appData->clearCallbackState();
7656 AppData* appData = toAppData(ssl);
7658 delete appData;