- /*while (ExitLoop == FALSE){
-
- // Verify that we have a trusted SSL connection first.
-
- int ErrorCode = ConnHandle.SSLVerifyTest();
-
- if (ErrorCode != CURLE_OK){
-
- if (ErrorCode == CURLE_SSL_CACERT ||
- ErrorCode == CURLE_PEER_FAILED_VERIFICATION ||
- ErrorCode == CURLE_SSL_CONNECT_ERROR){
-
- // Invalid SSL certificate so bring up a dialog to the user
- // explaining what has happened and the options available.
-
- // Stop all the timers.
-
- frmMainPtrGet->PauseAllTimers();
-
- int SSLResult;
-
-#if defined(__APPLE__)
-
- // Bring up the trust panel and display the SSL certificate dialog.
-
- SSLResult = DisplayTrustPanel(ConnHandle.GetTrustObject(), AccountNameFriendly);
-
- // Update the SSL account with the trust object.
-
- if (SSLResult != NSOKButton){
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, ConnHandle.GetTrustObject());
- iter->second = 2;
- break;
-
- } else {
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetTrustObject());
-
-
- }
-
-#elif defined(__WIN32__)
-
- BOOL ModifiedCertificateData;
- CRYPTUI_VIEWCERTIFICATE_STRUCTW CertificateData = BuildCertificateData(&ConnHandle, (HWND)frmMainPtrGet->GetHandle());
-
- if (!CryptUIDlgViewCertificate(&CertificateData, &ModifiedCertificateData)){
- wxMessageBox(_("An error occured while trying to open the certificate dialog."), _("Error opening Certificate Information dialog"));
- }
-
- if (ModifiedCertificateData == FALSE){
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, ConnHandle.GetCertificateContextPointer());
- iter->second = 2;
- break;
-
- } else {
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetCertificateContextPointer());
-
- }
-
-#else
-
- // Setup the data to be sent in the wxPostEvent command.
-
- SSLInvalidCertNotifObj SSLICNProcData;
-
- SSLCertCollection certcol = ConnHandle.GetSSLVerifyResults();
-
- bool *PauseMode = new bool;
- QRNotif qrn;
-
- *PauseMode = TRUE;
- qrn.QResponse = &SSLResult;
- qrn.PausePtr = PauseMode;
-
- SSLICNProcData.CertCollection = certcol;
- SSLICNProcData.QRNotifData = &qrn;
- SSLICNProcData.AccountName = AccountNameFriendly;
-
- wxCommandEvent event(INVALIDSSLCERT);
- event.SetClientData(&SSLICNProcData);
- wxPostEvent(frmMainPtrGet, event);
-
- while (*PauseMode == TRUE){
- //nanosleep(&n1, &n2);
- SleepFor(250000000);
- }
-
- // Process the response from the user.
-
- if (SSLResult == 1){
-
- // Accept the certificate. Write the certificate into the account
- // directory (as server.crt) - will overwrite old certificate.
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetCertificateData());
- WriteServerCertificate(AccountDir, ConnHandle.GetCertificateData());
-
- } else if (SSLResult == 2){
-
- // Reject the certificate, abort the task and mark as failed.
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, ConnHandle.GetCertificateData());
- iter->second = 2;
- break;
-
- }
-
-#endif
-
- // Resume all the timers.
-
- frmMainPtrGet->ResumeAllTimers();
- ExitLoop = TRUE;
-
- } else {
-
- iter->second = 2;
- break;
-
- }
-
- } else {
-
- ExitLoop = TRUE;
-
- }
-
- }
-
- if (iter->second == 2 || iter->second == 3 || iter->second == 4){
- break;
- }
-
-#if defined(__APPLE__)
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetTrustObject());
-
-#elif defined(__WIN32__)
-
- frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetCertificateContextPointer());
-
-#else