diff options
-rw-r--r-- | plugins/exchange-operations/ChangeLog | 11 | ||||
-rw-r--r-- | plugins/exchange-operations/exchange-calendar.c | 16 | ||||
-rw-r--r-- | plugins/exchange-operations/exchange-config-listener.c | 7 |
3 files changed, 26 insertions, 8 deletions
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 <rsushma@novell.com> + + * 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 <rsushma@novell.com> * 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; |