From: Steve Brokenshire <sbrokenshire@xestia.co.uk>
Date: Sat, 30 Apr 2016 23:18:17 +0000 (+0100)
Subject: Updated code for AddEntry in the CalDAV object.
X-Git-Tag: release-0.02~277
X-Git-Url: http://Server1/repobrowser/?a=commitdiff_plain;h=a50bc3fa4725718416037d41ad4bf9db6edc362b;p=xestiacalendar%2F.git

Updated code for AddEntry in the CalDAV object.
---

diff --git a/source/objects/CalDAV/CalDAV.cpp b/source/objects/CalDAV/CalDAV.cpp
index d103c81..ae416aa 100644
--- a/source/objects/CalDAV/CalDAV.cpp
+++ b/source/objects/CalDAV/CalDAV.cpp
@@ -1016,6 +1016,46 @@ CalDAVServerResult CalDAV::AddEntry(string *CalendarEntryHREF, string *EntryData
 	
 	EntryAddSendData.readptr = EntryData;
 	EntryAddSendData.sizeleft = EntryData->size();
+	
+	struct curl_slist *CalendarRequestHeader = NULL;
+	
+	CalendarRequestHeader = curl_slist_append(CalendarRequestHeader, "Content-Type: text/calendar; charset=utf-8");
+	
+	curl_easy_setopt(ConnectionHandle, CURLOPT_HTTPHEADER, CalendarRequestHeader);
+	curl_easy_setopt(ConnectionHandle, CURLOPT_URL, EntryAddURLAddress.c_str());
+	curl_easy_setopt(ConnectionHandle, CURLOPT_CUSTOMREQUEST, "PUT");
+	curl_easy_setopt(ConnectionHandle, CURLOPT_UPLOAD, 1L);
+	curl_easy_setopt(ConnectionHandle, CURLOPT_READDATA, &EntryAddSendData);
+	curl_easy_setopt(ConnectionHandle, CURLOPT_READFUNCTION, CalDAVSend);
+	
+	// Process the data.
+	
+	ServerData.clear();
+	ServerHeader.clear();
+	
+	CURLcode ServerConnectionResult = curl_easy_perform(ConnectionHandle);
+	
+	if (ServerConnectionResult == CURLE_OK){
+		ServerResult.Result = CALDAVQUERYRESULT_OK;
+	} else {
+		ServerResult.Result = CALDAVQUERYRESULT_SERVERERROR;		
+	}
+	ServerResult.Code = ServerConnectionResult;
+	curl_easy_getinfo(ConnectionHandle, CURLINFO_RESPONSE_CODE, &ServerResult.HTTPCode);
+	
+	// Restore the original settings.
+	
+	string OriginalServerAddress = BuildServerAddress(&ConnectionData, "/principals/");
+	curl_easy_setopt(ConnectionHandle, CURLOPT_URL, OriginalServerAddress.c_str());
+	curl_easy_setopt(ConnectionHandle, CURLOPT_CUSTOMREQUEST, NULL);	
+	curl_easy_setopt(ConnectionHandle, CURLOPT_UPLOAD, 0L);
+	curl_easy_setopt(ConnectionHandle, CURLOPT_READDATA, NULL);
+	curl_easy_setopt(ConnectionHandle, CURLOPT_READFUNCTION, NULL);
+	curl_easy_setopt(ConnectionHandle, CURLOPT_HTTPHEADER, NULL);
+	
+	return ServerResult;
+	
+}
 
 	struct curl_slist *CalendarRequestHeader = NULL;