[evolution-ews] CamelEwsStore: Set GError if request for trash/junk folder fails.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] CamelEwsStore: Set GError if request for trash/junk folder fails.
- Date: Mon, 6 Aug 2012 12:18:25 +0000 (UTC)
commit 1118fd0e64f3d0e93bdd3e77ce4092c70f9bcdd6
Author: Matthew Barnes <mbarnes redhat com>
Date: Mon Aug 6 08:14:50 2012 -0400
CamelEwsStore: Set GError if request for trash/junk folder fails.
Caught ews_get_trash_folder_sync() and ews_get_junk_folder_sync()
returning NULL without setting a GError.
src/camel/camel-ews-store.c | 60 ++++++++++++++++++++++++++++++------------
1 files changed, 43 insertions(+), 17 deletions(-)
---
diff --git a/src/camel/camel-ews-store.c b/src/camel/camel-ews-store.c
index 786fdd6..b73bfd2 100644
--- a/src/camel/camel-ews-store.c
+++ b/src/camel/camel-ews-store.c
@@ -1067,10 +1067,9 @@ camel_ews_store_ref_connection (CamelEwsStore *ews_store)
}
static CamelFolder *
-ews_get_folder_by_type_sync (CamelStore *store,
- guint32 folder_type,
- GCancellable *cancellable,
- GError **error)
+ews_get_trash_folder_sync (CamelStore *store,
+ GCancellable *cancellable,
+ GError **error)
{
CamelEwsStore *ews_store;
CamelFolder *folder = NULL;
@@ -1079,14 +1078,22 @@ ews_get_folder_by_type_sync (CamelStore *store,
g_return_val_if_fail (CAMEL_IS_EWS_STORE (store), NULL);
ews_store = CAMEL_EWS_STORE (store);
- folder_id = camel_ews_store_summary_get_folder_id_from_folder_type (ews_store->summary, folder_type);
+ folder_id = camel_ews_store_summary_get_folder_id_from_folder_type (
+ ews_store->summary, CAMEL_FOLDER_TYPE_TRASH);
- if (!folder_id)
+ if (folder_id == NULL) {
+ g_set_error (
+ error, CAMEL_STORE_ERROR,
+ CAMEL_STORE_ERROR_NO_FOLDER,
+ _("Could not locate Trash folder"));
return NULL;
+ }
- folder_name = camel_ews_store_summary_get_folder_full_name (ews_store->summary, folder_id, NULL);
+ folder_name = camel_ews_store_summary_get_folder_full_name (
+ ews_store->summary, folder_id, NULL);
- folder = ews_get_folder_sync (store, folder_name, 0, cancellable, error);
+ folder = ews_get_folder_sync (
+ store, folder_name, 0, cancellable, error);
g_free (folder_name);
g_free (folder_id);
@@ -1095,19 +1102,38 @@ ews_get_folder_by_type_sync (CamelStore *store,
}
static CamelFolder *
-ews_get_trash_folder_sync (CamelStore *store,
- GCancellable *cancellable,
- GError **error)
-{
- return ews_get_folder_by_type_sync (store, CAMEL_FOLDER_TYPE_TRASH, cancellable, error);
-}
-
-static CamelFolder *
ews_get_junk_folder_sync (CamelStore *store,
GCancellable *cancellable,
GError **error)
{
- return ews_get_folder_by_type_sync (store, CAMEL_FOLDER_TYPE_JUNK, cancellable, error);
+ CamelEwsStore *ews_store;
+ CamelFolder *folder = NULL;
+ gchar *folder_id, *folder_name;
+
+ g_return_val_if_fail (CAMEL_IS_EWS_STORE (store), NULL);
+
+ ews_store = CAMEL_EWS_STORE (store);
+ folder_id = camel_ews_store_summary_get_folder_id_from_folder_type (
+ ews_store->summary, CAMEL_FOLDER_TYPE_JUNK);
+
+ if (folder_id == NULL) {
+ g_set_error (
+ error, CAMEL_STORE_ERROR,
+ CAMEL_STORE_ERROR_NO_FOLDER,
+ _("Could not locate Junk folder"));
+ return NULL;
+ }
+
+ folder_name = camel_ews_store_summary_get_folder_full_name (
+ ews_store->summary, folder_id, NULL);
+
+ folder = ews_get_folder_sync (
+ store, folder_name, 0, cancellable, error);
+
+ g_free (folder_name);
+ g_free (folder_id);
+
+ return folder;
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]