X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcarddav%2Fcarddav-servercontact.cpp;h=a3c70c3b319b501ad690d0647d3be996e78d94cc;hb=7195b19cb9b6bac69a55acdffabaec237dc67e78;hp=ec21df5a242d2db303d758ec19963784f4494f07;hpb=9bb2fe74bfed060ee6ee764ea8ed95c25e3e0446;p=xestiaab%2F.git diff --git a/source/carddav/carddav-servercontact.cpp b/source/carddav/carddav-servercontact.cpp index ec21df5..a3c70c3 100644 --- a/source/carddav/carddav-servercontact.cpp +++ b/source/carddav/carddav-servercontact.cpp @@ -31,6 +31,8 @@ void CardDAV::GetServerContactData() { + // Get the server contact data. + PageData.Clear(); PageHeader.Clear(); @@ -46,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; @@ -71,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::iterator ActIter; struct UploadDataStruc UploadData; - ActIter = ActivityListPtr->find((int)ItemIndex); - - //ActIter->second = 1; - - /*wxString CardDAVDataQuery = wxT("\r\n"); - CardDAVDataQuery.Append(wxT("\r\n")); - CardDAVDataQuery.Append(wxT("\r\n")); - CardDAVDataQuery.Append(wxT("\r\n")); - CardDAVDataQuery.Append(wxT(" \r\n")); - CardDAVDataQuery.Append(wxT("\r\n")); - CardDAVDataQuery.Append(wxT(""));*/ + + // Try SSL first. if (ServerSSL){ @@ -122,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__) || defined(__WIN32__) + +#else + ServerCertFilename = GetAccountDir(ServerAccount, TRUE); if (wxFile::Exists(ServerCertFilename) == TRUE){ @@ -139,6 +115,8 @@ void CardDAV::GetServerContactData() } +#endif + claconncode = (curl_easy_perform(conn)); // If CURLE_PEER_FAILED_VERIFICATION is returned, retry without @@ -160,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)); @@ -182,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)); @@ -206,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); @@ -263,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); @@ -286,6 +254,8 @@ void CardDAV::GetServerContactData() } +#endif + // Sort out SSL error. // When SSL cert error occurs, connect again and fetch certificates. @@ -319,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); @@ -367,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();