#include "carddav2.h"
-#include <iostream>
-
using namespace std;
CardDAV2::CardDAV2(string ServerAddress, int ServerPort, string ServerUser, string ServerPass, bool ServerSSL){
certptr.certdata = NULL;
- curl_easy_getinfo(ConnectionSession, CURLINFO_CERTINFO, &certptr.certinfo);
-
+ 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;
COConnectResult ConnectResult = COCONNECT_UNITTESTFAIL;
string ServerAddressURL = BuildURL("/principals/");
-
+
curl_easy_setopt(ConnectionSession, CURLOPT_URL, ServerAddressURL.c_str());
if (TestMode == true){
SSLVerified = COSSL_VERIFIED;
ConnectResult = COCONNECT_OK;
break;
+ case CURLE_SSL_INVALIDCERTSTATUS:
case CURLE_SSL_CACERT:
case CURLE_SSL_CONNECT_ERROR:
SSLStatus = true;
std::string SyncData;
- // TODO: Copy old code from CardDAV class as needed.
-
if (SyncToken.size() > 0){
SyncData = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"
curl_easy_setopt(ConnectionSession, CURLOPT_URL, ServerAddressURL.c_str());
curl_easy_setopt(ConnectionSession, CURLOPT_NOPROGRESS, 1L);
+ curl_easy_setopt(ConnectionSession, CURLOPT_CERTINFO, 1L);
curl_easy_setopt(ConnectionSession, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST|CURLAUTH_BASIC);
curl_easy_setopt(ConnectionSession, CURLOPT_TIMEOUT, 60);
curl_easy_setopt(ConnectionSession, CURLOPT_FAILONERROR, 0L);
curl_easy_setopt(ConnectionSession, CURLOPT_WRITEDATA, &PageDataObject);
curl_easy_setopt(ConnectionSession, CURLOPT_WRITEHEADER, &PageHeaderObject);
curl_easy_setopt(ConnectionSession, CURLOPT_ERRORBUFFER, SessionErrorBuffer);
- //curl_easy_setopt(ConnectionSession, CURLOPT_NOSIGNAL, 1L);
- curl_easy_setopt(ConnectionSession, CURLOPT_CERTINFO, 1L);
- //curl_easy_setopt(ConnectionSession, CURLOPT_VERBOSE, 2L);
curl_easy_setopt(ConnectionSession, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(ConnectionSession, CURLOPT_HTTPHEADER, nullptr);
curl_easy_setopt(ConnectionSession, CURLOPT_POSTFIELDS, nullptr);
string CertificateFilename = GetAccountDir(ServerAccount, true);
if (wxFile::Exists(CertificateFilename)){
-
+
curl_easy_setopt(ConnectionSession, CURLOPT_CAINFO, CertificateFilename.c_str());
+ // Force CURLOPT_SSL_VERIFYSTATUS to 0.
+ curl_easy_setopt(ConnectionSession, CURLOPT_SSL_VERIFYSTATUS, 0L);
+
}
}
string ServerAddressURL;
- if (SSLStatus == true){
+ if (ServerSSL == true){
ServerAddressURL = "https://" + ServerAddress + ":" + to_string(ServerPort) + URI;
} else {
ServerAddressURL = "http://" + ServerAddress + ":" + to_string(ServerPort) + URI;