aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/caldav/ChangeLog8
-rw-r--r--plugins/caldav/caldav-source.c14
2 files changed, 21 insertions, 1 deletions
diff --git a/plugins/caldav/ChangeLog b/plugins/caldav/ChangeLog
index 5f28deb6b3..9a9bae7398 100644
--- a/plugins/caldav/ChangeLog
+++ b/plugins/caldav/ChangeLog
@@ -1,3 +1,11 @@
+2009-04-28 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #578335
+
+ * caldav-source.c: (user_changed), (location_changed):
+ Revert part of bug #562990, as EPassword requires username
+ as part of an URL to store passwords properly to a keyring.
+
2009-04-24 Milan Crha <mcrha@redhat.com>
** Part of fix for bug #569652
diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c
index 46e510367f..5df807a691 100644
--- a/plugins/caldav/caldav-source.c
+++ b/plugins/caldav/caldav-source.c
@@ -124,11 +124,22 @@ location_changed (GtkEntry *editable, ESource *source)
{
EUri *euri;
char *ruri;
- const char *uri;
+ const char *uri, *username;
uri = gtk_entry_get_text (GTK_ENTRY (editable));
euri = e_uri_new (uri);
+ g_return_if_fail (euri != NULL);
+
+ username = e_source_get_property (source, "username");
+ if (username && !*username)
+ username = NULL;
+
+ if ((!euri->user && username) || (euri->user && username && !g_str_equal (euri->user, username))) {
+ g_free (euri->user);
+ euri->user = g_strdup (username);
+ }
+
ruri = print_uri_noproto (euri);
e_source_set_relative_uri (source, ruri);
g_free (ruri);
@@ -163,6 +174,7 @@ user_changed (GtkEntry *editable, ESource *source)
euri->user = NULL;
if (user != NULL && *user) {
+ euri->user = g_strdup (user);
e_source_set_property (source, "auth", "1");
} else {
e_source_set_property (source, "auth", NULL);