Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
CalDAV: WIP CalDAV support
[xestiacalendar/.git] / source / objects / CalDAV / CalDAV.cpp
index ecd91bd..25c322e 100644 (file)
@@ -1460,7 +1460,94 @@ CalDAVServerResult CalDAV::DeleteEntry(string *calendarEntryHREF){
        
 }
 
-bool CalDAVObjectValidSettings(CalDAVConnectionData *connData){
+COSSLVerified CalDAV::SSLVerify()
+{
+       return SSLVerified;
+}
+
+void CalDAV::BypassSSLVerification(bool EnableBypass){
+       EnableSSLBypass = EnableBypass;
+       SSLSelfSigned = EnableBypass;
+}
+
+#if defined(__APPLE__)
+
+SecTrustRef CalDAV::BuildSSLCollection(){
+       
+       return CertificateData;
+       
+}
+
+#elif defined(__WIN32__)
+
+PCCERT_CONTEXT CalDAV::BuildSSLCollection(){
+
+       return CertificateData;
+
+}
+
+#else
+
+SSLCertCollectionString CalDAV::BuildSSLCollection(){
+
+       // Build and return the SSL collection.
+       
+       SSLCertCollectionString SSLCertInfo;
+
+       // Grab the certificate data.
+
+       union {
+               struct curl_slist *certdata;
+               struct curl_certinfo *certinfo;
+       } certptr;
+
+       certptr.certdata = NULL;
+       
+       CURLcode result = curl_easy_getinfo(ConnectionSession, CURLINFO_CERTINFO, &certptr.certinfo);
+       
+       std::string CertPropName;
+       std::string CertPropValue;
+       
+       for (int i = 0; i < certptr.certinfo->num_of_certs; i++){
+               
+               struct curl_slist *slist;
+               SSLCertDataString SSLCertDataInc;
+               
+               for (slist = certptr.certinfo->certinfo[i]; slist; slist = slist->next){
+                       
+                       // Using wxStringTokenizer from wxWidgets.
+                       
+                       wxStringTokenizer CertDataInc(wxString::FromUTF8(slist->data), ":");
+                       
+                       // Get first token as the property name.
+                       
+                       CertPropName = CertDataInc.GetNextToken().ToStdString();
+                       
+                       // Get remaining tokens as the property value.
+                       
+                       while(CertDataInc.HasMoreTokens()){
+                       
+                               CertPropValue.append(CertDataInc.GetNextToken());
+                       
+                       }
+                       
+                       SSLCertDataInc.CertData.insert(std::make_pair(CertPropName, CertPropValue));
+                       CertPropName.clear();
+                       CertPropValue.clear();
+                       
+               }
+       
+               SSLCertInfo.SSLCollection.insert(std::make_pair(i, SSLCertDataInc));
+       
+       }
+       
+       return SSLCertInfo;
+
+}
+
+#endif
+
+static bool CalDAVObjectValidSettings(CalDAVConnectionData *connData){
 
        // Check if the passed CalDAV Connection Data is has
        // an address set. Return false if nullptr is used.
@@ -1521,7 +1608,7 @@ bool CalDAVObjectValidSettings(CalDAVConnectionData *connData){
 
 }
 
-string BuildServerAddress(CalDAVConnectionData *connData, string uriAddress){
+static string BuildServerAddress(CalDAVConnectionData *connData, string uriAddress){
        
        string serverAddress;
        
@@ -1547,4 +1634,4 @@ string BuildServerAddress(CalDAVConnectionData *connData, string uriAddress){
        
        return serverAddress;
        
-}
\ No newline at end of file
+}
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