Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Improved invalid SSL/self-signed checking when creating a new account.
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 4 Oct 2015 15:15:34 +0000 (16:15 +0100)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 4 Oct 2015 15:15:34 +0000 (16:15 +0100)
source/frmNewAccount.cpp

index 4eb1259..3df7781 100644 (file)
@@ -152,10 +152,68 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event )
                                // expired certificate so display the invalid
                                // SSL certificate message.
 
-                               frmInvalidSSLCertificate *frmICPtr = new frmInvalidSSLCertificate(this);
+                               // Setup the data to be sent in the wxPostEvent command.
+
+                               //SSLInvalidCertNotifObj SSLICNProcData;
+
+                               //bool *PauseMode = new bool;
+                               int SSLResult;
+                               //QRNotif qrn;
+
+                               //*PauseMode = TRUE;            
+                               //qrn.QResponse = &SSLResult;
+                               //qrn.PausePtr = PauseMode;
+                               
+                               //SSLICNProcData.CertCollection = CardDAVConn.GetSSLVerifyResults();
+                               //SSLICNProcData.QRNotifData = &qrn;
+                               //SSLICNProcData.AccountName = _("New account");
+                       
+                               frmInvalidSSLCertificate *frmICPtr = new frmInvalidSSLCertificate(this);
 
                                frmICPtr->LoadDataNew(CardDAVConn.GetSSLVerifyResults(), txtServerAddress->GetValue());
                                frmICPtr->ShowModal();
+                       
+                               //wxCommandEvent event(INVALIDSSLCERT);
+                               //event.SetClientData(&SSLICNProcData);
+                               //wxPostEvent(this->GetParent(), event);
+       
+                               /*timespec n1, n2;
+               
+                               // Fall asleep until we get an response.
+               
+                               n1.tv_sec = 0;
+                               n1.tv_nsec = 250000000L;*/
+                                       
+                               SSLResult = frmICPtr->GetResult();
+                                                       
+                               // Clean up before processing response.
+                               
+                               delete frmICPtr;
+                               frmICPtr = NULL;
+                                                       
+                               // Process the response from the user.
+                                                       
+                               if (SSLResult == 1){
+                                                               
+                                       // Accept the Certificate.
+
+                                       CardDAVConn.AllowSelfSignTest(TRUE);
+                                                               
+                               } else if (SSLResult == 2){
+                                                               
+                                       // Reject the certificate, abort the task and mark as failed.
+
+                                       lblServerConnResult->SetLabel(_("Failed"));
+                                       lblConnectionResultText->SetLabel(_("An error occured whilst connnecting: ") + CardDAVConn.GetErrorMessage() + wxString::Format(wxT(" (%i)\n%s"), sslcode, CardDAVConn.GetErrorBuffer().mb_str()));
+                                       return;
+                                                               
+                               }
+
+                               //frmInvalidSSLCertificate *frmICPtr = new frmInvalidSSLCertificate(this);
+
+                               //frmICPtr->LoadDataNew(CardDAVConn.GetSSLVerifyResults(), txtServerAddress->GetValue());
+                               //frmICPtr->ShowModal();
+                               
 
                        } else {
 
@@ -177,7 +235,6 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event )
         if (ServerResult == FALSE){
             
             lblServerConnResult->SetLabel(_("Failed"));
-            wxMessageBox(CardDAVConn.GetErrorMessage());
             return;
             
         } else {
@@ -186,19 +243,9 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event )
             
         }
         
-        if (CardDAVConn.HasValidResponse() == TRUE){
-            
-            lblServerResponse->SetLabel(_("Yes"));
-            
-        } else {
-            
-            lblServerResponse->SetLabel(_("No"));
-            
-        }
-        
         if (CardDAVConn.CanDoSSL() == TRUE){
             
-            lblCardDAVSupportResult->SetLabel(_("Used"));
+           lblServerSSLResult->SetLabel(_("Used"));
             
         } else {
             
@@ -209,13 +256,17 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event )
         
         if (CardDAVConn.SSLVerify() == TRUE && CardDAVConn.CanDoSSL() == TRUE){
             
-            lblCardDAVSupportResult->SetLabel(_("Verified"));
+            lblServerSSLValid->SetLabel(_("Verified"));
             
-        } else if (CardDAVConn.SSLVerify() == FALSE && CardDAVConn.CanDoSSL() == TRUE) {
+        } else if (CardDAVConn.SSLVerify() == FALSE && CardDAVConn.CanDoSSL() == TRUE && CardDAVConn.IsSelfSigned() == TRUE){
+       
+            lblServerSSLValid->SetLabel(_("Verified (user)"));
+       
+       } else if (CardDAVConn.SSLVerify() == FALSE && CardDAVConn.CanDoSSL() == TRUE) {
             
-            lblServerSSLResult->SetLabel(_("Unable to verify"));
+            lblServerSSLValid->SetLabel(_("Unable to verify"));
             
-        }
+        }      
         
         if (CardDAVConn.CanDoCardDAV() == TRUE){
             
@@ -241,7 +292,15 @@ void frmNewAccount::ProcessNext( wxCommandEvent& event )
         
         ServerPrefix = CardDAVConn.GetDefaultAddressBookURL();
         
-        wxMessageBox(ServerPrefix);
+       if (CardDAVConn.HasValidResponse() == TRUE){
+            
+            lblServerResponse->SetLabel(_("Yes"));
+            
+        } else {
+            
+            lblServerResponse->SetLabel(_("No"));
+            
+        }
         
         if (ServerResult == TRUE && CardDAVConn.HasValidResponse() == TRUE &&
             //CardDAVConn.CanDoSSL() == TRUE && CardDAVConn.SSLVerify() == TRUE &&
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy