X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2FCalDAV%2FCalDAV.cpp;h=25c322e3d443357e6d41a46029c51a1bce5d72ba;hb=7ac592fd401bd3a5e8c346827c63b34899a17e64;hp=ecd91bd3295bbaf53acc3985707e44f0494a4b13;hpb=28f3ef896d323eb07dbc74bfb6e71c364295105a;p=xestiacalendar%2F.git diff --git a/source/objects/CalDAV/CalDAV.cpp b/source/objects/CalDAV/CalDAV.cpp index ecd91bd..25c322e 100644 --- a/source/objects/CalDAV/CalDAV.cpp +++ b/source/objects/CalDAV/CalDAV.cpp @@ -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 +}