X-Git-Url: http://Server1/repobrowser/?p=xestiaab%2F.git;a=blobdiff_plain;f=source%2Fcarddav2%2Fcarddav2.h;h=5a1b35592c4299e7a5f757fe13403c96b893e322;hp=fd1212cc3c3f03f9d1112762a570bc37a384be71;hb=45cb2270fa3df3cc855fc5e039f44c8bae993a35;hpb=a578ed436123242f807cb59eae02fcf6c22e2458 diff --git a/source/carddav2/carddav2.h b/source/carddav2/carddav2.h index fd1212c..5a1b355 100644 --- a/source/carddav2/carddav2.h +++ b/source/carddav2/carddav2.h @@ -32,12 +32,14 @@ #include #include +#include class CardDAV2 : public ConnectionObject { public: - using ConnectionObject::ConnectionObject; + CardDAV2(std::string ServerAddress, int ServerPort, std::string ServerUser, std::string ServerPass, bool ServerSSL); + CardDAV2(std::string ServerAddress, int ServerPort, std::string ServerUser, std::string ServerPass, bool ServerSSL, std::string ServerPrefix, std::string ServerAccount); // Destructor. @@ -67,9 +69,10 @@ class CardDAV2 : public ConnectionObject { bool IsSelfSigned(); std::string GetErrorMessage(); - void BypassSSLVerification(bool EnableBypass); - #if defined(__APPLE__) + + SecTrustRef BuildSSLCollection(); + #elif defined(__WIN32__) PCCERT_CONTEXT BuildSSLCollection(); @@ -78,7 +81,21 @@ class CardDAV2 : public ConnectionObject { SSLCertCollectionString BuildSSLCollection(); #endif + + void BypassSSLVerification(bool EnableBypass); + struct CardDAV2PassObject { + CardDAV2 *CardDAV2Object = nullptr; + std::string *DataSetting = nullptr; + bool ServerUsingSSL = false; + CURL *ConnectionSessionObject = nullptr; +#if defined(__APPLE__) + SecTrustRef SSLContext = nullptr; +#elif defined(__WIN32__) + PCCERT_CONTEXT SSLContext = nullptr; +#endif + }; + protected: private: @@ -95,6 +112,9 @@ class CardDAV2 : public ConnectionObject { std::string PageHeader; char SessionErrorBuffer[CURL_ERROR_SIZE]; + CardDAV2PassObject PageDataObject; + CardDAV2PassObject PageHeaderObject; + static size_t WritebackFunc(char *ptr, size_t size, size_t nmemb, void *stream); size_t WritebackFuncImplementation(char *ptr, size_t size, size_t nmemb, void *stream); @@ -108,16 +128,22 @@ class CardDAV2 : public ConnectionObject { std::string GetAddressBookHomeURI(); std::string GetDefaultAddressBookURI(); void ProcessContactData(COContactList *ContactList); - + #if defined(__APPLE__) + + SecTrustRef CertificateData = nullptr; + #elif defined(__WIN32__) - PCCERT_CONTEXT CertificateData; + PCCERT_CONTEXT CertificateData = nullptr; #else - bool EnableSSLBypass = false; #endif + void SetCertificateData(); + + bool EnableSSLBypass = false; + }; -#endif \ No newline at end of file +#endif