[evolution-data-server] Bug #669085 - Saving draft on Google server emits runtime warning
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug #669085 - Saving draft on Google server emits runtime warning
- Date: Fri, 27 Apr 2012 11:43:06 +0000 (UTC)
commit f2b7d86cbf2d9b3e26a14cd7e3ca2c807cf39499
Author: Milan Crha <mcrha redhat com>
Date: Fri Apr 27 13:42:14 2012 +0200
Bug #669085 - Saving draft on Google server emits runtime warning
camel/providers/imap/camel-imap-folder.c | 3 ++-
camel/providers/imapx/camel-imapx-folder.c | 2 +-
camel/providers/imapx/camel-imapx-server.c | 14 +++++++++++---
camel/providers/imapx/camel-imapx-server.h | 1 +
4 files changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 5cfb735..c012b33 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -2448,7 +2448,8 @@ retry:
if (!response2)
return response2;
- if (store->capabilities & IMAP_CAPABILITY_UIDPLUS) {
+ if ((store->capabilities & IMAP_CAPABILITY_UIDPLUS) != 0 ||
+ is_google_account (parent_store)) {
*uid = camel_strstrcase (response2->status, "[APPENDUID ");
if (*uid)
*uid = strchr (*uid + 11, ' ');
diff --git a/camel/providers/imapx/camel-imapx-folder.c b/camel/providers/imapx/camel-imapx-folder.c
index 20c8ae9..318ac6a 100644
--- a/camel/providers/imapx/camel-imapx-folder.c
+++ b/camel/providers/imapx/camel-imapx-folder.c
@@ -417,7 +417,7 @@ imapx_append_message_sync (CamelFolder *folder,
server = camel_imapx_store_get_server (istore, NULL, cancellable, error);
if (server) {
success = camel_imapx_server_append_message (
- server, folder, message, info, cancellable, error);
+ server, folder, message, info, appended_uid, cancellable, error);
g_object_unref (server);
}
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index ce6b255..2d9e598 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -123,6 +123,7 @@ struct _SyncChangesData {
struct _AppendMessageData {
gchar *path;
CamelMessageInfo *info;
+ gchar *appended_uid;
};
struct _CopyMessagesData {
@@ -333,6 +334,7 @@ static void
append_message_data_free (AppendMessageData *data)
{
g_free (data->path);
+ g_free (data->appended_uid);
camel_message_info_free (data->info);
@@ -3514,10 +3516,9 @@ imapx_command_append_message_done (CamelIMAPXServer *is,
c(is->tagprefix, "Got appenduid %d %d\n", (gint)ic->status->u.appenduid.uidvalidity, (gint)ic->status->u.appenduid.uid);
if (ic->status->u.appenduid.uidvalidity == ifolder->uidvalidity_on_server) {
CamelFolderChangeInfo *changes;
- gchar *uid;
- uid = g_strdup_printf("%u", (guint)ic->status->u.appenduid.uid);
- mi->uid = camel_pstring_add (uid, TRUE);
+ data->appended_uid = g_strdup_printf ("%u", (guint) ic->status->u.appenduid.uid);
+ mi->uid = camel_pstring_add (data->appended_uid, FALSE);
cur = camel_data_cache_get_filename (ifolder->cache, "cur", mi->uid, NULL);
g_rename (data->path, cur);
@@ -5758,6 +5759,7 @@ camel_imapx_server_append_message (CamelIMAPXServer *is,
CamelFolder *folder,
CamelMimeMessage *message,
const CamelMessageInfo *mi,
+ gchar **appended_uid,
GCancellable *cancellable,
GError **error)
{
@@ -5816,6 +5818,7 @@ camel_imapx_server_append_message (CamelIMAPXServer *is,
data = g_slice_new0 (AppendMessageData);
data->info = info; /* takes ownership */
data->path = path; /* takes ownership */
+ data->appended_uid = NULL;
job = camel_imapx_job_new (cancellable);
job->pri = IMAPX_PRIORITY_APPEND_MESSAGE;
@@ -5829,6 +5832,11 @@ camel_imapx_server_append_message (CamelIMAPXServer *is,
success = imapx_submit_job (is, job, error);
+ if (appended_uid) {
+ *appended_uid = data->appended_uid;
+ data->appended_uid = NULL;
+ }
+
camel_imapx_job_unref (job);
return success;
diff --git a/camel/providers/imapx/camel-imapx-server.h b/camel/providers/imapx/camel-imapx-server.h
index 0172228..e793dde 100644
--- a/camel/providers/imapx/camel-imapx-server.h
+++ b/camel/providers/imapx/camel-imapx-server.h
@@ -194,6 +194,7 @@ gboolean camel_imapx_server_append_message
CamelFolder *folder,
CamelMimeMessage *message,
const CamelMessageInfo *mi,
+ gchar **append_uid,
GCancellable *cancellable,
GError **error);
gboolean camel_imapx_server_sync_message (CamelIMAPXServer *is,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]