Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Implemented support using ConnectionObject/CardDAV2 on Win32 systems.
[xestiaab/.git] / source / carddav2 / carddav2.h
index fd1212c..143b61f 100644 (file)
@@ -37,7 +37,8 @@ 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,8 +68,6 @@ class CardDAV2 : public ConnectionObject {
                bool IsSelfSigned();
                std::string GetErrorMessage();
 
-               void BypassSSLVerification(bool EnableBypass);
-
 #if defined(__APPLE__)
 #elif defined(__WIN32__)
 
@@ -78,7 +77,20 @@ 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__)
+#elif defined(__WIN32__)
+                       PCCERT_CONTEXT SSLContext = nullptr;
+#endif
+               };
+
        protected:
        private:
                
@@ -95,6 +107,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 +123,19 @@ class CardDAV2 : public ConnectionObject {
                std::string GetAddressBookHomeURI();
                std::string GetDefaultAddressBookURI();
                void ProcessContactData(COContactList *ContactList);
-       
+
 #if defined(__APPLE__)
 #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
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