X-Git-Url: http://Server1/repobrowser/?p=xestiaab%2F.git;a=blobdiff_plain;f=source%2FfrmEditAccount.cpp;h=d0f7effc0f17700c0d4de5c48bb9a454cb504f3d;hp=faea105f49e090a5ae95d09eca19dbc073100829;hb=547ab1fe605cdb4884179ab011dabba4d0bd7bc2;hpb=a578ed436123242f807cb59eae02fcf6c22e2458 diff --git a/source/frmEditAccount.cpp b/source/frmEditAccount.cpp index faea105..d0f7eff 100644 --- a/source/frmEditAccount.cpp +++ b/source/frmEditAccount.cpp @@ -94,6 +94,30 @@ void frmEditAccount::DetectAddressBook( wxCommandEvent& event ) if (TestConnection.SSLVerify() == COSSL_UNABLETOVERIFY){ #if defined(__APPLE__) #elif defined(__WIN32__) + + TestConnection.BypassSSLVerification(true); + + COConnectResult TestConnectionResult = TestConnection.Connect(false); + + TestConnection.BypassSSLVerification(false); + + BOOL ModifiedCertificateData = false; + CRYPTUI_VIEWCERTIFICATE_STRUCTW CertificateData = BuildCertificateData(&TestConnection, (HWND)this->GetHandle()); + + if (!CryptUIDlgViewCertificate(&CertificateData, &ModifiedCertificateData)) { + wxMessageBox(_("An error occured while trying to open the certificate dialog."), _("Error opening Certificate Information dialog")); + return; + } + + if (ModifiedCertificateData == false) { + wxMessageBox(_("An invalid certificate was received from the server."), _("Invalid certificate")); + return; + } else { + TestConnection.BypassSSLVerification(true); + COConnectResult TestConnectionResult = TestConnection.Connect(true); + TestConnection.BypassSSLVerification(false); + } + #else // Connect again and fetch SSL certificate information. @@ -144,9 +168,11 @@ void frmEditAccount::DetectAddressBook( wxCommandEvent& event ) } // Get the server prefix if the connection was successful. - + if (TestConnectionResult == COCONNECT_OK){ + COConnectResult TestConnectionResult = TestConnection.Connect(true); + if (UsingSSLBypass == true){ TestConnection.BypassSSLVerification(true); }