From 18c2ab5bc837295bcffae9bcc6bfcd05e6c9beb2 Mon Sep 17 00:00:00 2001 From: Sushma Rai Date: Thu, 5 Jan 2006 13:01:58 +0000 Subject: Setting the username, authtype, auth-domain and auth properties on the esource created, so that corresponding folder will be authenticated and loaded after the folder creation. Also fixed memory leak in case of no any changes condition. Not freeing the non allocated string offline_mode. svn path=/trunk/; revision=31064 --- plugins/exchange-operations/ChangeLog | 11 +++++++++++ plugins/exchange-operations/exchange-calendar.c | 16 +++++++++++++--- plugins/exchange-operations/exchange-config-listener.c | 7 ++----- 3 files changed, 26 insertions(+), 8 deletions(-) (limited to 'plugins') diff --git a/plugins/exchange-operations/ChangeLog b/plugins/exchange-operations/ChangeLog index f0fe72418c..71f5796129 100644 --- a/plugins/exchange-operations/ChangeLog +++ b/plugins/exchange-operations/ChangeLog @@ -1,3 +1,14 @@ +2006-01-05 Sushma Rai + + * exchange-calendar.c (e_exchange_calendar_commit): Setting the + username, authtype, auth-domain and auth properties on the esource + created, so that corresponding folder will be authenticated and loaded + after the folder creation. Also fixed memory leak in case of no any + changes condition. + + * exchange-config-listener.c (remove_selected_non_offline_esources): + Not freeing the non allocated string offline_mode. + 2006-01-02 Sushma Rai * exchange-folder-permission.c (org_gnome_exchange_folder_permissions): diff --git a/plugins/exchange-operations/exchange-calendar.c b/plugins/exchange-operations/exchange-calendar.c index 0117e18af7..8b87150487 100644 --- a/plugins/exchange-operations/exchange-calendar.c +++ b/plugins/exchange-operations/exchange-calendar.c @@ -323,6 +323,7 @@ e_exchange_calendar_commit (EPlugin *epl, EConfigTarget *target) ECalConfigTargetSource *t = (ECalConfigTargetSource *) target; ESource *source = t->source; gchar *uri_text, *gruri, *gname, *ruri, *ftype, *path, *path_prefix, *oldpath=NULL; + gchar *username, *authtype; int prefix_len; ExchangeAccount *account; ExchangeAccountFolderResult result; @@ -335,11 +336,14 @@ e_exchange_calendar_commit (EPlugin *epl, EConfigTarget *target) return ; } - status = exchange_is_offline (&offline_status); + status = exchange_is_offline (&offline_status); if (offline_status == OFFLINE_MODE || status != CONFIG_LISTENER_STATUS_OK) return; account = exchange_operations_get_exchange_account (); + username = exchange_account_get_username (account); + authtype = exchange_account_get_authtype (account); + path_prefix = g_strconcat (account->account_filename, "/;", NULL); prefix_len = strlen (path_prefix); g_free (path_prefix); @@ -370,6 +374,11 @@ e_exchange_calendar_commit (EPlugin *epl, EConfigTarget *target) ruri = g_strconcat (gruri, "/", gname, NULL); } e_source_set_relative_uri (source, ruri); + e_source_set_property (source, "username", username); + e_source_set_property (source, "auth-domain", "Exchange"); + if (authtype) + e_source_set_property (source, "auth-type", authtype); + e_source_set_property (source, "auth", "1"); path = g_build_filename ("/", ruri+prefix_len, NULL); @@ -387,7 +396,7 @@ e_exchange_calendar_commit (EPlugin *epl, EConfigTarget *target) } else { /* Nothing happened specific to exchange; just return */ - return; + goto done; } switch (result) { @@ -415,7 +424,8 @@ e_exchange_calendar_commit (EPlugin *epl, EConfigTarget *target) default: break; } - + +done: g_free (uri_text); g_free (ruri); g_free (path); diff --git a/plugins/exchange-operations/exchange-config-listener.c b/plugins/exchange-operations/exchange-config-listener.c index beb19a110f..d83458ef24 100644 --- a/plugins/exchange-operations/exchange-config-listener.c +++ b/plugins/exchange-operations/exchange-config-listener.c @@ -1143,7 +1143,7 @@ remove_selected_non_offline_esources (ExchangeAccount *account, const char *gcon const char *source_uid; GConfClient *client; ESourceList *source_list = NULL; - char *offline_mode=NULL; + const char *offline_mode=NULL; char *selected_gconf_key; @@ -1179,8 +1179,7 @@ remove_selected_non_offline_esources (ExchangeAccount *account, const char *gcon selected_gconf_key, GCONF_VALUE_STRING, NULL); if (ids) { - offline_mode = (gchar*) e_source_get_property (source, - "offline_sync"); + offline_mode = e_source_get_property (source, "offline_sync"); if (!offline_mode || (offline_mode && strcmp (offline_mode, "1"))) { while ((node_to_be_deleted = @@ -1197,8 +1196,6 @@ remove_selected_non_offline_esources (ExchangeAccount *account, const char *gcon } g_slist_foreach (ids, (GFunc) g_free, NULL); g_slist_free (ids); - g_free (offline_mode); - } } found_group = TRUE; -- cgit v1.2.3