Fix to set error code and message properly

Signed-off-by: OBATA Akio <obache@wizdas.com>
(cherry picked from commit afa497c628)
r14.0.x
OBATA Akio 5 years ago committed by Slávek Banko
parent 1878ff088b
commit 1f3cbf0375
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -200,6 +200,8 @@ gboolean caldav_delete(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);
@ -254,26 +256,10 @@ gboolean caldav_delete(caldav_settings* settings, caldav_error* error) {
curl_easy_setopt(curl, CURLOPT_UNRESTRICTED_AUTH, 1);
curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
res = curl_easy_perform(curl);
if (LOCKSUPPORT) {
caldav_unlock_object(
lock_token, url, settings, &lock_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);
}
if (res != 0) {
error->code = -1;
error->str = g_strdup_printf("%s", error_buf);
result = TRUE;
g_free(settings->file);
settings->file = NULL;
}
else {
long code;
@ -285,6 +271,22 @@ gboolean caldav_delete(caldav_settings* settings, caldav_error* error) {
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 (result) {
g_free(settings->file);
settings->file = NULL;
}
curl_slist_free_all(http_header);
}
else {
@ -433,6 +435,8 @@ gboolean caldav_tasks_delete(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);
@ -487,26 +491,10 @@ gboolean caldav_tasks_delete(caldav_settings* settings, caldav_error* error) {
curl_easy_setopt(curl, CURLOPT_UNRESTRICTED_AUTH, 1);
curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
res = curl_easy_perform(curl);
if (LOCKSUPPORT) {
caldav_unlock_object(
lock_token, url, settings, &lock_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);
}
if (res != 0) {
error->code = -1;
error->str = g_strdup_printf("%s", error_buf);
result = TRUE;
g_free(settings->file);
settings->file = NULL;
}
else {
long code;
@ -518,13 +506,26 @@ gboolean caldav_tasks_delete(caldav_settings* settings, caldav_error* error) {
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 (result) {
g_free(settings->file);
settings->file = NULL;
}
curl_slist_free_all(http_header);
}
else {
error->code = code;
if (chunk.memory)
error->str = g_strdup(chunk.memory);
else
error->code = -1;
error->str = g_strdup("No object found");
result = TRUE;
}

@ -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);
}
}
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;
}
g_free(url);
g_free(lock_token);
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,26 +499,10 @@ 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 (LOCKSUPPORT) {
caldav_unlock_object(
lock_token, url, settings, &lock_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);
}
if (res != 0) {
error->code = -1;
error->str = g_strdup_printf("%s", error_buf);
result = TRUE;
g_free(settings->file);
settings->file = NULL;
}
else {
long code;
@ -522,17 +510,25 @@ gboolean caldav_tasks_modify(caldav_settings* settings, caldav_error* error) {
curl, CURLINFO_RESPONSE_CODE, &code);
if (code != 204) {
error->code = code;
error->str = g_strdup(chunk.memory);
error->str = g_strdup(chnk.memory);
result = TRUE;
}
}
if (LOCKSUPPORT) {
caldav_unlock_object(
lock_token, url, settings, &lock_error);
}
}
g_free(url);
g_free(lock_token);
if (result) {
g_free(settings->file);
settings->file = NULL;
}
curl_slist_free_all(http_header);
}
else {
error->code = code;
if (chunk.memory)
error->str = g_strdup(chunk.memory);
else
error->code = -1;
error->str = g_strdup("No object found");
result = TRUE;
}

Loading…
Cancel
Save