summaryrefslogtreecommitdiffstats
path: root/src/modify-caldav-object.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modify-caldav-object.c')
-rw-r--r--src/modify-caldav-object.c90
1 files changed, 43 insertions, 47 deletions
diff --git a/src/modify-caldav-object.c b/src/modify-caldav-object.c
index 3db1e59..67bdb54 100644
--- a/src/modify-caldav-object.c
+++ b/src/modify-caldav-object.c
@@ -200,6 +200,8 @@ gboolean caldav_modify(caldav_settings* settings, caldav_error* error) {
if (url) {
int lock = 0;
caldav_error lock_error;
+ lock_error.code = 0;
+ lock_error.str = NULL;
file = g_strdup(etag);
g_free(etag);
@@ -255,37 +257,37 @@ gboolean caldav_modify(caldav_settings* settings, caldav_error* error) {
curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
res = curl_easy_perform(curl);
+ if (res != 0) {
+ error->code = -1;
+ error->str = g_strdup_printf("%s", error_buf);
+ result = TRUE;
+ }
+ else {
+ long code;
+ res = curl_easy_getinfo(
+ cur, CURLINFO_RESPONSE_CODE, &code);
+ if (code != 204) {
+ error->code = code;
+ error->str = g_strdup(chunk.memory);
+ result = TRUE;
+ }
+ }
if (LOCKSUPPORT) {
caldav_unlock_object(
lock_token, url, settings, &lock_error);
}
}
+ else {
+ error->code = lock_error.code;
+ error->str = g_strdup(lock_error.str);
+ result = TRUE;
+ }
g_free(url);
g_free(lock_token);
- if (res != 0 || lock < 0) {
- /* Is this a lock_error don't change error*/
- if (lock == 0 || lock_error.code == 423) {
- error->code = code;
- error->str = g_strdup(chunk.memory);
- }
- else {
- error->code = lock_error.code;
- error->str = g_strdup(lock_error.str);
- }
- result = TRUE;
+ if (result) {
g_free(settings->file);
settings->file = NULL;
}
- else {
- long code;
- res = curl_easy_getinfo(
- curl, CURLINFO_RESPONSE_CODE, &code);
- if (code != 204) {
- error->code = code;
- error->str = g_strdup(chunk.memory);
- result = TRUE;
- }
- }
curl_slist_free_all(http_header);
}
else {
@@ -443,6 +445,8 @@ gboolean caldav_tasks_modify(caldav_settings* settings, caldav_error* error) {
if (url) {
int lock = 0;
caldav_error lock_error;
+ lock_error.code = 0;
+ lock_error.str = NULL;
file = g_strdup(etag);
g_free(etag);
@@ -495,6 +499,21 @@ gboolean caldav_tasks_modify(caldav_settings* settings, caldav_error* error) {
curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
res = curl_easy_perform(curl);
+ if (res != 0) {
+ error->code = -1;
+ error->str = g_strdup_printf("%s", error_buf);
+ result = TRUE;
+ }
+ else {
+ long code;
+ res = curl_easy_getinfo(
+ curl, CURLINFO_RESPONSE_CODE, &code);
+ if (code != 204) {
+ error->code = code;
+ error->str = g_strdup(chnk.memory);
+ result = TRUE;
+ }
+ }
if (LOCKSUPPORT) {
caldav_unlock_object(
lock_token, url, settings, &lock_error);
@@ -502,38 +521,15 @@ gboolean caldav_tasks_modify(caldav_settings* settings, caldav_error* error) {
}
g_free(url);
g_free(lock_token);
- if (res != 0 || lock < 0) {
- /* Is this a lock_error don't change error*/
- if (lock == 0 || lock_error.code == 423) {
- error->code = code;
- error->str = g_strdup(chunk.memory);
- }
- else {
- error->code = lock_error.code;
- error->str = g_strdup(lock_error.str);
- }
- result = TRUE;
+ if (result) {
g_free(settings->file);
settings->file = NULL;
}
- else {
- long code;
- res = curl_easy_getinfo(
- curl, CURLINFO_RESPONSE_CODE, &code);
- if (code != 204) {
- error->code = code;
- error->str = g_strdup(chunk.memory);
- result = TRUE;
- }
- }
curl_slist_free_all(http_header);
}
else {
- error->code = code;
- if (chunk.memory)
- error->str = g_strdup(chunk.memory);
- else
- error->str = g_strdup("No object found");
+ error->code = -1;
+ error->str = g_strdup("No object found");
result = TRUE;
}
}