Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added initial unit tests for CalDAV/ListCalendars
[xestiacalendar/.git] / source / objects / CalDAV / CalDAV.cpp
index f0f8dc8..964f286 100644 (file)
 // with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
 
 #include "CalDAV.h"
-#include <iostream>
 
 using namespace std;
 
+size_t CalDAVOutput(char *ReceivedBuffer, size_t Size, size_t NewMemoryBytes, string *StringPointer)
+{
+       
+       string ReceivedBufferString = "";
+       ReceivedBufferString.append(ReceivedBuffer, NewMemoryBytes);
+       
+       StringPointer->append(ReceivedBufferString);
+       
+       return Size * NewMemoryBytes;
+       
+}
+
 CalDAV::CalDAV(){
 
        // Setup the objects within the CalDAV connection 
@@ -66,6 +77,7 @@ CalDAVStatus CalDAV::GetConnectionData(){
        ConnectionStatus.Username = ConnectionData.Username;
        ConnectionStatus.Prefix = ConnectionData.Prefix;
        ConnectionStatus.UseSSL = ConnectionData.UseSSL;
+       ConnectionStatus.Timeout = ConnectionData.Timeout;
        
        return ConnectionStatus;
        
@@ -77,6 +89,8 @@ CalDAVServerResult CalDAV::Connect(){
 
        string ServerAddress = "";
        string ServerUserPass = "";
+       string ServerData = "";
+       string ServerHeader = "";
 
        // Setup the server address.
        
@@ -108,11 +122,15 @@ CalDAVServerResult CalDAV::Connect(){
        curl_easy_setopt(ConnectionHandle, CURLOPT_USERPWD, ServerUserPass.c_str());
        curl_easy_setopt(ConnectionHandle, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
        curl_easy_setopt(ConnectionHandle, CURLOPT_FAILONERROR, 1L);
-
+       curl_easy_setopt(ConnectionHandle, CURLOPT_TIMEOUT, ConnectionData.Timeout);
+       curl_easy_setopt(ConnectionHandle, CURLOPT_WRITEFUNCTION, CalDAVOutput);
+       curl_easy_setopt(ConnectionHandle, CURLOPT_WRITEDATA, &ServerData);
+       curl_easy_setopt(ConnectionHandle, CURLOPT_WRITEHEADER, &ServerHeader);
+       
        // Connect to the CalDAV server.
        
        ServerResult.Code = curl_easy_perform(ConnectionHandle);
-       
+
        // Process the result received from the server.
        
        if (ServerResult.Code != CURLE_OK){
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