evolution-data-server r9098 - trunk/libedataserverui



Author: mbarnes
Date: Tue Jul  8 14:52:08 2008
New Revision: 9098
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9098&view=rev

Log:
2008-07-08  Matthew Barnes  <mbarnes redhat com>

	** Fixes bug #537415

	* libedataserverui/e-book-auth-util.c (load_source_auth_cb):
	Break a busy loop between Evolution and Gnome-Keyring by only
	reauthenticating when the EBookStatus is AUTHENTICATION_FAILED
	or AUTHENTICATION_REQUIRED.  Fixes a case where we kept trying
	to authenticate to an unspecified Global Catalog server, where
	the EBookStatus was REPOSITORY_OFFLINE.



Modified:
   trunk/libedataserverui/ChangeLog
   trunk/libedataserverui/e-book-auth-util.c

Modified: trunk/libedataserverui/e-book-auth-util.c
==============================================================================
--- trunk/libedataserverui/e-book-auth-util.c	(original)
+++ trunk/libedataserverui/e-book-auth-util.c	Tue Jul  8 14:52:08 2008
@@ -72,9 +72,10 @@
 {
 	LoadSourceData *data = closure;
 
-	if (status != E_BOOK_ERROR_OK) {
+	switch (status) {
+
 		/* the user clicked cancel in the password dialog */
-		if (status == E_BOOK_ERROR_CANCELLED) {
+		case E_BOOK_ERROR_CANCELLED:
 			if (e_book_check_static_capability (book, "anon-access")) {
 				GtkWidget *dialog;
 
@@ -89,21 +90,16 @@
 								 _("Accessing LDAP Server anonymously"));
 				g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
 				gtk_widget_show (dialog);
-				if (data->open_func)
-					data->open_func (book, E_BOOK_ERROR_OK, data->open_func_data);
-				free_load_source_data (data);
-				return;
 			}
-		} else if (status == E_BOOK_ERROR_INVALID_SERVER_VERSION) {
-#if 0
-			e_error_run (NULL, "addressbook:server-version", NULL);
-#endif
+			break;
+
+		case E_BOOK_ERROR_INVALID_SERVER_VERSION:
 			status = E_BOOK_ERROR_OK;
-			if (data->open_func)
-				data->open_func (book, status, data->open_func_data);
-			free_load_source_data (data);
-			return;
-		} else {
+			break;
+
+		case E_BOOK_ERROR_AUTHENTICATION_FAILED:
+		case E_BOOK_ERROR_AUTHENTICATION_REQUIRED:
+		{
 			const gchar *uri = e_book_get_uri (book);
 			gchar *stripped_uri = remove_parameters_from_uri (uri);
 			const gchar *auth_domain = e_source_get_property (data->source, "auth-domain");
@@ -120,6 +116,9 @@
 
 			return;
 		}
+
+		default:
+			break;
 	}
 
 	if (data->open_func)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]