Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added #defined(__APPLE__) around SetConnectionObject in the CardDAV object.
[xestiaab/.git] / source / carddav / carddav-servercontact.cpp
index 3c94d88..1ebc1df 100644 (file)
@@ -1,3 +1,21 @@
+// carddav-servercontact.cpp - CardDAV Object - Server Contact subroutines.
+//
+// (c) 2012-2015 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
+
 #include "carddav.h"
 #include "../version.h"
 #include <wx/wx.h>
@@ -13,6 +31,8 @@
 void CardDAV::GetServerContactData()
 {
 
+       // Get the server contact data.
+       
        PageData.Clear();
        PageHeader.Clear();
 
@@ -28,10 +48,16 @@ void CardDAV::GetServerContactData()
        wxString ServerAddressURL;
        wxString ServerAuth;
        wxString ServerAddressSSL;
-       wxString ServerAddressNormal;   
-
+       wxString ServerAddressNormal;
+       
         conn = curl_easy_init();
        
+#if defined(__APPLE__)
+       
+       SetConnectionObject(conn);
+
+#endif
+       
        struct CardDAVCURLPasser {
        
                CardDAV *Data;
@@ -53,43 +79,13 @@ void CardDAV::GetServerContactData()
        ServerAddressNormal = wxT("http://") + ServerAddressURL;
        
        ServerAuth = ServerUser + wxT(":") + ServerPass;
-       
-       // Try SSL first.
-
-
-       /*
-       char *ServerAdrSSLChar = new char[(ServerAddressSSL.Length() - 1)];
-       //memset(ServerAdrSSLChar, 0, ServerAddressSSL.Length());
-       strncpy(ServerAdrSSLChar, (const char*)ServerAddressSSL.mb_str(wxConvUTF8), (ServerAddressSSL.Length() - 1));
-       
-       char *ServerAdrNorChar = new char[(ServerAddressNormal.Length() - 1)];
-       //memset(ServerAdrNorChar, 0, ServerAddressSSL.Length());       
-       strncpy(ServerAdrNorChar, (const char*)ServerAddressNormal.mb_str(wxConvUTF8), (ServerAddressNormal.Length() - 1));
-
-       char *ServerAuthChar = new char[(ServerAuth.Length() - 1)];
-       //memset(ServerAuthChar, 0, ServerAddressSSL.Length()); 
-       strncpy(ServerAuthChar, (const char*)ServerAuth.mb_str(wxConvUTF8), (ServerAuth.Length() - 1));
-       
-       */
-
-       //std::string WriteDataString = std::string(ServerUploadData.mb_str());
 
        std::map<int,int>::iterator ActIter;
        struct UploadDataStruc UploadData;
        
-       
        ActIter = ActivityListPtr->find((int)ItemIndex);
-
-       //ActIter->second = 1;
-
-       /*wxString CardDAVDataQuery = wxT("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n");
-       CardDAVDataQuery.Append(wxT("<C:addressbook-multiget xmlns:D=\"DAV:\"\r\n"));
-       CardDAVDataQuery.Append(wxT("   xmlns:C=\"urn:ietf:params:xml:ns:carddav\">\r\n"));
-       CardDAVDataQuery.Append(wxT("<D:prop><D:getetag/>\r\n"));
-       CardDAVDataQuery.Append(wxT("<C:address-data>\r\n"));
-       CardDAVDataQuery.Append(wxT("   <C:allprop/>\r\n"));
-       CardDAVDataQuery.Append(wxT("</C:address-data></D:prop>\r\n"));
-       CardDAVDataQuery.Append(wxT("</C:addressbook-multiget>"));*/
+       
+       // Try SSL first.
 
        if (ServerSSL){
 
@@ -104,13 +100,11 @@ void CardDAV::GetServerContactData()
                curl_easy_setopt(conn, CURLOPT_WRITEDATA, &PageData);
                curl_easy_setopt(conn, CURLOPT_WRITEHEADER, &PageHeader);
                curl_easy_setopt(conn, CURLOPT_NOSIGNAL, 1);
-               
-               //UploadData.readptr = &CardDAVDataQuery;
-               //UploadData.sizeleft = CardDAVDataQuery.Len();
-               //curl_easy_setopt(conn, CURLOPT_UPLOAD, 1);
-               //curl_easy_setopt(conn, CURLOPT_READDATA, &UploadData);
-               //curl_easy_setopt(conn, CURLOPT_READFUNCTION, UploadReadFunc);
 
+#if defined(__APPLE__)
+               
+#else
+               
                ServerCertFilename = GetAccountDir(ServerAccount, TRUE);
 
                if (wxFile::Exists(ServerCertFilename) == TRUE){
@@ -121,6 +115,8 @@ void CardDAV::GetServerContactData()
                
                }
 
+#endif
+               
                claconncode = (curl_easy_perform(conn));
 
                // If CURLE_PEER_FAILED_VERIFICATION is returned, retry without
@@ -142,9 +138,6 @@ void CardDAV::GetServerContactData()
                        curl_easy_setopt(conn, CURLOPT_WRITEDATA, &PageData);
                        curl_easy_setopt(conn, CURLOPT_WRITEHEADER, &PageHeader);
                        curl_easy_setopt(conn, CURLOPT_NOSIGNAL, 1);
-               
-                       //UploadData.readptr = &CardDAVDataQuery;
-                       //UploadData.sizeleft = CardDAVDataQuery.Len();
                        
                        claconncode = (curl_easy_perform(conn));
                        
@@ -164,17 +157,16 @@ void CardDAV::GetServerContactData()
                // Check if it fails with a CURLE_SSL_CACERT then compare
                // the certificates as PEM files.
                
+#if defined(__APPLE__)
+               
+#else
+               
                if (claconncode == CURLE_SSL_CACERT && wxFile::Exists(ServerCertFilename) == TRUE){
                
-                       //curl_easy_cleanup(conn);
-                       //conn = curl_easy_init();
-
                        CURL *sslerrconn;
                        sslerrconn = curl_easy_init();
                        CURLcode sslerrconncode;
 
-                       //claconncode = (curl_easy_perform(conn));
-
                        wxString ServerAddressOnly = wxT("https://") + ServerAddress + wxT(":") + wxString::Format(wxT("%i"), ServerPort) + wxT("/");
 
                        curl_easy_setopt(sslerrconn, CURLOPT_URL, (const char*)ServerAddressOnly.mb_str(wxConvUTF8));
@@ -188,9 +180,6 @@ void CardDAV::GetServerContactData()
                        curl_easy_setopt(sslerrconn, CURLOPT_WRITEDATA, &PageData);
                        curl_easy_setopt(sslerrconn, CURLOPT_WRITEHEADER, &PageHeader);
                        curl_easy_setopt(sslerrconn, CURLOPT_NOSIGNAL, 1);
-               
-                       //UploadData.readptr = &CardDAVDataQuery;
-                       //UploadData.sizeleft = CardDAVDataQuery.Len();
                        curl_easy_setopt(sslerrconn, CURLOPT_SSL_VERIFYPEER, 0);
                        curl_easy_setopt(sslerrconn, CURLOPT_SSL_VERIFYHOST, 0);
                        curl_easy_setopt(sslerrconn, CURLOPT_CERTINFO, 1);
@@ -245,9 +234,6 @@ void CardDAV::GetServerContactData()
                                curl_easy_setopt(conn, CURLOPT_WRITEDATA, &PageData);
                                curl_easy_setopt(conn, CURLOPT_WRITEHEADER, &PageHeader);
                                curl_easy_setopt(conn, CURLOPT_NOSIGNAL, 1);
-               
-                               //UploadData.readptr = &CardDAVDataQuery;
-                               //UploadData.sizeleft = CardDAVDataQuery.Len();
                                curl_easy_setopt(conn, CURLOPT_SSL_VERIFYHOST, 0);
                                curl_easy_setopt(conn, CURLOPT_SSL_VERIFYPEER, 0);
                                                        
@@ -268,6 +254,8 @@ void CardDAV::GetServerContactData()
                
                }
                
+#endif
+               
                // Sort out SSL error.
                
                // When SSL cert error occurs, connect again and fetch certificates.
@@ -301,7 +289,13 @@ void CardDAV::GetServerContactData()
                        curl_easy_setopt(sslerrconn, CURLOPT_NOSIGNAL, 1);
                        curl_easy_setopt(sslerrconn, CURLOPT_SSL_VERIFYPEER, 0);
                        curl_easy_setopt(sslerrconn, CURLOPT_CERTINFO, 1);
-                                       
+                       
+#if defined(__APPLE__)
+                       
+                       SetConnectionObject(sslerrconn);
+                       
+#endif
+                       
                        sslerrconncode = (curl_easy_perform(sslerrconn));
 
                        SSLCertCol = BuildSSLCollection(sslerrconn);
@@ -349,20 +343,6 @@ void CardDAV::GetServerContactData()
                curl_easy_setopt(conn, CURLOPT_WRITEHEADER, &PageHeader);
                curl_easy_setopt(conn, CURLOPT_NOSIGNAL, 1);
                
-               //UploadData.readptr = &CardDAVDataQuery;
-               //UploadData.sizeleft = CardDAVDataQuery.Len();
-               //curl_easy_setopt(conn, CURLOPT_UPLOAD, 1);
-               //curl_easy_setopt(conn, CURLOPT_READDATA, &UploadData);
-               //curl_easy_setopt(conn, CURLOPT_READFUNCTION, UploadReadFunc);
-
-               //UploadData.readptr = &CardDAVDataQuery;
-               //UploadData.sizeleft = CardDAVDataQuery.Len();
-               //curl_easy_setopt(conn, CURLOPT_UPLOAD, 1);
-               //curl_easy_setopt(conn, CURLOPT_READDATA, &UploadData);
-               //curl_easy_setopt(conn, CURLOPT_READFUNCTION, UploadReadFunc);
-               
-               //curl_easy_setopt(conn, CURLOPT_WRITEFUNCTION, writefunc);     
-               
                PageData.Clear();
                PageHeader.Clear();
                
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