Author: sragavan Date: Sun Feb 17 20:29:58 2008 New Revision: 35035 URL: http://svn.gnome.org/viewvc/evolution?rev=35035&view=rev
Log: 2008-02-18 Srinivasa Ragavan <[EMAIL PROTECTED]> ** Fix for bnc #160049. Patch from OpenSUSE. * common/authentication.c: (build_pass_key), (auth_cal_forget_password): * common/authentication.h: * gui/e-tasks.c: (client_cal_opened_cb), (default_client_cal_opened_cb): * gui/gnome-cal.c: (client_cal_opened_cb): Modified: trunk/calendar/ChangeLog trunk/calendar/common/authentication.c trunk/calendar/common/authentication.h trunk/calendar/gui/e-tasks.c trunk/calendar/gui/gnome-cal.c Modified: trunk/calendar/common/authentication.c ============================================================================== --- trunk/calendar/common/authentication.c (original) +++ trunk/calendar/common/authentication.c Sun Feb 17 20:29:58 2008 @@ -30,6 +30,7 @@ #include <libedataserver/e-source.h> #include <libedataserverui/e-passwords.h> #include "authentication.h" +#include <libedataserver/e-url.h> static GHashTable *source_lists_hash = NULL; @@ -55,6 +56,44 @@ return password; } +static char * +build_pass_key (ECal *ecal) +{ + char *euri_str; + const char *uri; + EUri *euri; + + uri = e_cal_get_uri (ecal); + + euri = e_uri_new (uri); + euri_str = e_uri_to_string (euri, FALSE); + + e_uri_free (euri); + return euri_str; +} + +void +auth_cal_forget_password (ECal *ecal) +{ + ESource *source = NULL; + const char *auth_domain = NULL, *component_name = NULL, *auth_type = NULL; + char *key = NULL; + + source = e_cal_get_source (ecal); + auth_domain = e_source_get_property (source, "auth-domain"); + component_name = auth_domain ? auth_domain : "Calendar"; + + auth_type = e_source_get_property (source, "auth-type"); + if (auth_type) + key = build_pass_key (ecal); + else + key = e_source_get_uri (source); + + e_passwords_forget_password (component_name, key); + + g_free (key); +} + ECal * auth_new_cal_from_default (ECalSourceType type) { Modified: trunk/calendar/common/authentication.h ============================================================================== --- trunk/calendar/common/authentication.h (original) +++ trunk/calendar/common/authentication.h Sun Feb 17 20:29:58 2008 @@ -30,5 +30,6 @@ ECal *auth_new_cal_from_default (ECalSourceType type); ECal *auth_new_cal_from_source (ESource *source, ECalSourceType type); ECal *auth_new_cal_from_uri (const char *uri, ECalSourceType type); +void auth_cal_forget_password (ECal *ecal); #endif Modified: trunk/calendar/gui/e-tasks.c ============================================================================== --- trunk/calendar/gui/e-tasks.c (original) +++ trunk/calendar/gui/e-tasks.c Sun Feb 17 20:29:58 2008 @@ -964,6 +964,9 @@ priv = tasks->priv; source = e_cal_get_source (ecal); + + if (status == E_CALENDAR_STATUS_AUTHENTICATION_FAILED) + auth_cal_forget_password (ecal); switch (status) { case E_CALENDAR_STATUS_OK : @@ -1010,6 +1013,9 @@ source = e_cal_get_source (ecal); + if (status == E_CALENDAR_STATUS_AUTHENTICATION_FAILED) + auth_cal_forget_password (ecal); + switch (status) { case E_CALENDAR_STATUS_OK : g_signal_handlers_disconnect_matched (ecal, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, default_client_cal_opened_cb, NULL); Modified: trunk/calendar/gui/gnome-cal.c ============================================================================== --- trunk/calendar/gui/gnome-cal.c (original) +++ trunk/calendar/gui/gnome-cal.c Sun Feb 17 20:29:58 2008 @@ -2642,6 +2642,10 @@ default: break; } + + if (status == E_CALENDAR_STATUS_AUTHENTICATION_FAILED && source_type == E_CAL_SOURCE_TYPE_EVENT) + auth_cal_forget_password (ecal); + switch (status) { case E_CALENDAR_STATUS_OK: break; _______________________________________________ SVN-commits-list mailing list (read only) http://mail.gnome.org/mailman/listinfo/svn-commits-list Want to limit the commits to a few modules? Go to above URL, log in to edit your options and select the modules ('topics') you want. Module maintainer? It is possible to set the reply-to to your development mailing list. Email [EMAIL PROTECTED] if interested.