CURL *conn;
CURL *connssldata;
- CURLcode conncode;
+ CURLcode conncode = CURLE_OK;
wxString ServerAddressURL;
wxString ServerAuth;
wxString ServerAddressSSL;
curl_easy_setopt(conn, CURLOPT_WRITEDATA, &PageData);
curl_easy_setopt(conn, CURLOPT_WRITEHEADER, &PageHeader);
-#if defined(__APPLE__)
+#if defined(__APPLE__) || defined(__WIN32__)
SetConnectionObject(conn);
+
+#else
+
+ if (ServerAccount != ""){
+
+ wxString ServerCertFilename = GetAccountDir(ServerAccount, TRUE);
+
+ if (wxFile::Exists(ServerCertFilename) == TRUE){
+
+ curl_easy_setopt(conn, CURLOPT_SSL_VERIFYPEER, 1);
+ curl_easy_setopt(conn, CURLOPT_SSL_VERIFYHOST, 2);
+ curl_easy_setopt(conn, CURLOPT_CAINFO, (const char*)ServerCertFilename.mb_str(wxConvUTF8));
+ }
+
+ }
+
#endif
-
+
conncode = (curl_easy_perform(conn));
// Check if the SSL certificate is valid or self-signed or some other
// Connection is OK. Do nothing.
*ServerResult = TRUE;
+
+#if !defined(__APPLE__) && !defined(__WIN32__)
+
+ VerifyCertCollection = BuildSSLCollection(conn);
- } else if (conncode == CURLE_SSL_CACERT || conncode == CURLE_SSL_CONNECT_ERROR){
+#endif
+
+ } else if (conncode == CURLE_SSL_CACERT ||
+ conncode == CURLE_SSL_CONNECT_ERROR ||
+ conncode == CURLE_PEER_FAILED_VERIFICATION){
connssldata = curl_easy_init();
curl_easy_setopt(connssldata, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(connssldata, CURLOPT_SSL_VERIFYHOST, 0L);
-#if defined(__APPLE__)
+#if defined(__APPLE__) || defined(__WIN32__)
SetConnectionObject(connssldata);
certfetchcode = (curl_easy_perform(connssldata));
+#if !defined(__APPLE__) && !defined(__WIN32__)
+
VerifyCertCollection = BuildSSLCollection(connssldata);
if (certfetchcode == CURLE_OK){
}
+#endif
+
*ServerResult = FALSE;
} else {