X-Git-Url: http://Server1/repobrowser/?p=xestiaab%2F.git;a=blobdiff_plain;f=source%2Factmgr%2FfrmActivityMgr.cpp;h=be5f40aa2eddd38fe7152c8d3c2100694364ddac;hp=40ab583d8debcbc3d12f9fa5847961f35e4cd153;hb=ccc379ac30775d5b73698b83875a35fc1bfa56d0;hpb=700c6a4c98319bc09eeb5c0905a5dafac8aa61cc diff --git a/source/actmgr/frmActivityMgr.cpp b/source/actmgr/frmActivityMgr.cpp index 40ab583..be5f40a 100644 --- a/source/actmgr/frmActivityMgr.cpp +++ b/source/actmgr/frmActivityMgr.cpp @@ -80,7 +80,7 @@ frmActivityMgrADT( parent ) ActListProcTimer.SetupPointers(&ActivityList, &ActivityListIndex, &ActivityListTaskDetail, &TasksActive, lstActivity, lblDetails, GauProgress, this, &AnimationTimer, - &ActProcessTimer, &ActivityListFinDate, &ActivityListConn); + &ActProcessTimer, &ActivityListFinDate, &ActivityListConnObject); AnimationTimer.SetBitmap(bmpActivity); AnimationTimer.SetSleepBitmap(&SleepBitmap); @@ -330,7 +330,54 @@ void frmActivityMgr::ProcessTasksThread() frmMainPtrGet->PauseAllTimers(); #if defined(__APPLE__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + int SSLResult = DisplayTrustPanel(ConnObjectIter->second->BuildSSLCollection(), AccountNameFriendly); + + if (SSLResult != NSOKButton){ + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #elif defined(__WIN32__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + BOOL ModifiedCertificateData = false; + CRYPTUI_VIEWCERTIFICATE_STRUCTW CertificateData = BuildCertificateData(ConnObjectIter->second, (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, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #else bool UsingSSLBypass = false; @@ -436,11 +483,11 @@ void frmActivityMgr::ProcessTasksThread() #if defined(__APPLE__) - frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetTrustObject()); + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); #elif defined(__WIN32__) - frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetCertificateContextPointer()); + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); #else @@ -449,7 +496,7 @@ void frmActivityMgr::ProcessTasksThread() #endif COServerResponse AddContactResponse = ConnObjectIter->second->AddContact(StringURLIter->second.ToStdString(), - StringDataIter->second.ToStdString()); + std::string(StringDataIter->second.ToUTF8())); if (AddContactResponse.RequestResult != COREQUEST_OK){ iter->second = 2; @@ -465,8 +512,6 @@ void frmActivityMgr::ProcessTasksThread() break; } - std::cout << ETagGetResponse.EntityTag << std::endl; - ETagDBPtr->UpdateETag(ContactFilename, ETagGetResponse.EntityTag, ETagGetResponse.EntityTag); iter->second = 4; @@ -527,7 +572,54 @@ void frmActivityMgr::ProcessTasksThread() frmMainPtrGet->PauseAllTimers(); #if defined(__APPLE__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + int SSLResult = DisplayTrustPanel(ConnObjectIter->second->BuildSSLCollection(), AccountNameFriendly); + + if (SSLResult != NSOKButton){ + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #elif defined(__WIN32__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + BOOL ModifiedCertificateData = false; + CRYPTUI_VIEWCERTIFICATE_STRUCTW CertificateData = BuildCertificateData(ConnObjectIter->second, (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, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #else bool UsingSSLBypass = false; @@ -729,7 +821,7 @@ void frmActivityMgr::ProcessTasksThread() // Upload the data to the server. COServerResponse EditContactResponse = ConnObjectIter->second->EditContact(StringURLIter->second.ToStdString(), - StringDataIter->second.ToStdString()); + std::string(StringDataIter->second.ToUTF8())); if (EditContactResponse.RequestResult != COREQUEST_OK){ iter->second = 2; @@ -795,7 +887,54 @@ void frmActivityMgr::ProcessTasksThread() frmMainPtrGet->PauseAllTimers(); #if defined(__APPLE__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + int SSLResult = DisplayTrustPanel(ConnObjectIter->second->BuildSSLCollection(), AccountNameFriendly); + + if (SSLResult != NSOKButton){ + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #elif defined(__WIN32__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + BOOL ModifiedCertificateData = false; + CRYPTUI_VIEWCERTIFICATE_STRUCTW CertificateData = BuildCertificateData(ConnObjectIter->second, (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, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #else bool UsingSSLBypass = false; @@ -901,11 +1040,11 @@ void frmActivityMgr::ProcessTasksThread() #if defined(__APPLE__) - frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetTrustObject()); + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); #elif defined(__WIN32__) - frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetCertificateContextPointer()); + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); #else @@ -966,7 +1105,6 @@ void frmActivityMgr::ProcessTasksThread() wxArrayString vCardUpdateRemote; wxArrayString vCardUpdateLog; std::map vCardETag; - ContactListData ServerContactList; std::map vCardDownloadData; @@ -1017,8 +1155,6 @@ void frmActivityMgr::ProcessTasksThread() COConnectResult ConnectResponse = ConnObjectIter->second->Connect(false); bool ExitLoop = FALSE; - - std::map *SCListData = NULL; while (ExitLoop == FALSE){ @@ -1027,7 +1163,54 @@ void frmActivityMgr::ProcessTasksThread() frmMainPtrGet->PauseAllTimers(); #if defined(__APPLE__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + int SSLResult = DisplayTrustPanel(ConnObjectIter->second->BuildSSLCollection(), AccountNameFriendly); + + if (SSLResult != NSOKButton){ + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #elif defined(__WIN32__) + + ConnObjectIter->second->BypassSSLVerification(true); + + COConnectResult ConnectionSSLResult = ConnObjectIter->second->Connect(false); + + ConnObjectIter->second->BypassSSLVerification(false); + + BOOL ModifiedCertificateData = false; + CRYPTUI_VIEWCERTIFICATE_STRUCTW CertificateData = BuildCertificateData(ConnObjectIter->second, (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, ConnObjectIter->second->BuildSSLCollection()); + iter->second = 2; + break; + + } else { + + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); + + } + #else bool UsingSSLBypass = false; @@ -1114,6 +1297,19 @@ void frmActivityMgr::ProcessTasksThread() ConnectResponse = ConnObjectIter->second->Connect(true); + if (ConnectResponse == COCONNECT_OK){ + + ExitLoop = true; + break; + + } else { + + ExitLoop = true; + iter->second = 2; + break; + + } + ExitLoop = true; break; @@ -1129,11 +1325,11 @@ void frmActivityMgr::ProcessTasksThread() #if defined(__APPLE__) - frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetTrustObject()); + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); #elif defined(__WIN32__) - frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnHandle.GetCertificateContextPointer()); + frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, ConnObjectIter->second->BuildSSLCollection()); #else @@ -1395,6 +1591,11 @@ void frmActivityMgr::ProcessTasksThread() COServerResponse ServerEntityTag = ConnObjectIter->second->GetServerEntityTagValue(additer->first.ToStdString()); + if (ServerEntityTag.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + ServerETag = wxString::FromUTF8(ServerEntityTag.EntityTag.c_str()); // Add to the ETag Database. @@ -1423,6 +1624,11 @@ void frmActivityMgr::ProcessTasksThread() COServerResponse ServerEntityTag = ConnObjectIter->second->GetServerEntityTagValue(additer->first.ToStdString()); + if (ServerEntityTag.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + ServerETag = wxString::FromUTF8(ServerEntityTag.EntityTag.c_str()); // Add to the ETag Database. @@ -1431,6 +1637,12 @@ void frmActivityMgr::ProcessTasksThread() } } + + // Check if any errors occured before continuing. + + if (iter->second != 1){ + break; + } // Look for vCard files which aren't in the ETagDB. @@ -1489,6 +1701,11 @@ void frmActivityMgr::ProcessTasksThread() COServerResponse ServerEntityTag = ConnObjectIter->second->GetServerEntityTagValue(vCardAdd[vi].ToStdString()); + if (ServerEntityTag.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + ETagServer = wxString::FromUTF8(ServerEntityTag.EntityTag.c_str()); if (ETagOriginal != ETagServer){ @@ -1510,6 +1727,11 @@ void frmActivityMgr::ProcessTasksThread() COServerResponse GetContactResponse = ConnObjectIter->second->GetContact(vCardAdd[vi].ToStdString(), &ServerContactDataString); + if (GetContactResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + ServerContactData = wxString::FromUTF8(ServerContactDataString.c_str()); // Process v3 version into v4 version. @@ -1559,8 +1781,13 @@ void frmActivityMgr::ProcessTasksThread() // Decided to use client version. - COServerResponse EditContactResponse = ConnObjectIter->second->EditContact(vCardAdd[vi].ToStdString(), ClientData.WriteString().ToStdString()); + COServerResponse EditContactResponse = ConnObjectIter->second->EditContact(vCardAdd[vi].ToStdString(), std::string(ClientData.WriteString().ToUTF8())); + if (EditContactResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + iter->second = 4; } else if (ConflictResult == 2){ @@ -1603,12 +1830,22 @@ void frmActivityMgr::ProcessTasksThread() // Upload the data to the server. - COServerResponse AddContactResponse = ConnObjectIter->second->AddContact(vCardAdd[vi].ToStdString(), TaskData.ToStdString()); + COServerResponse AddContactResponse = ConnObjectIter->second->AddContact(vCardAdd[vi].ToStdString(), std::string(TaskData.ToUTF8())); + if (AddContactResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + // Get the Server ETag and put it in the ETag database. COServerResponse EntityTagResponse = ConnObjectIter->second->GetServerEntityTagValue(vCardAdd[vi].ToStdString()); + if (EntityTagResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + ETagServer = wxString::FromUTF8(EntityTagResponse.EntityTag.c_str()); ETagDBPtr->AddETag(vCardAdd[vi], ETagServer, ETagServer); @@ -1636,6 +1873,11 @@ void frmActivityMgr::ProcessTasksThread() COServerResponse GetContactResponse = ConnObjectIter->second->GetContact(vCardAdd[vi].ToStdString(), &ServerContactDataString); + if (GetContactResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + ServerContactData = wxString::FromUTF8(ServerContactDataString.c_str()); ClientData.LoadFile(FullFilename); @@ -1681,8 +1923,13 @@ void frmActivityMgr::ProcessTasksThread() // Decided to use client version. - COServerResponse EditContactResponse = ConnObjectIter->second->EditContact(vCardAdd[vi].ToStdString(), ClientData.WriteString().ToStdString()); - + COServerResponse EditContactResponse = ConnObjectIter->second->EditContact(vCardAdd[vi].ToStdString(), std::string(ClientData.WriteString().ToUTF8())); + + if (EditContactResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + iter->second = 4; } else if (ConflictResult == 2){ @@ -1725,12 +1972,22 @@ void frmActivityMgr::ProcessTasksThread() // Upload the data to the server. - COServerResponse AddContactResponse = ConnObjectIter->second->AddContact(vCardAdd[vi].ToStdString(), TaskData.ToStdString()); - + COServerResponse AddContactResponse = ConnObjectIter->second->AddContact(vCardAdd[vi].ToStdString(), std::string(TaskData.ToUTF8())); + + if (AddContactResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + // Get the Server ETag and put it in the ETag database. COServerResponse EntityTagResponse = ConnObjectIter->second->GetServerEntityTagValue(vCardAdd[vi].ToStdString()); + if (EntityTagResponse.RequestResult != COREQUEST_OK){ + iter->second = 2; + break; + } + ETagDBPtr->AddETag(vCardAdd[vi], ETagServer, ETagServer); } @@ -1739,6 +1996,10 @@ void frmActivityMgr::ProcessTasksThread() } + if (iter->second != 1){ + break; + } + // Process the vCards to delete locally. for (int vi = 0; vi < vCardDelete.GetCount(); vi++){ @@ -2012,4 +2273,4 @@ void frmActivityMgr::UpdateStatusLabel(wxCommandEvent& event){ } -} \ No newline at end of file +}