[evolution-mapi] Bug #618661 - Crashes e-addressbook-factory.



commit a3e7cdaebc6b5f3d86ef23803f2969ec244f29eb
Author: Milan Crha <mcrha redhat com>
Date:   Mon Jun 7 08:52:39 2010 +0530

    Bug #618661 - Crashes e-addressbook-factory.
    
    Reuse already established connection.

 src/addressbook/e-book-backend-mapi-gal.c   |   13 +++++++------
 src/addressbook/e-book-backend-mapi-utils.c |    3 +--
 src/addressbook/e-book-backend-mapi.c       |   12 ++++++------
 src/calendar/e-cal-backend-mapi.c           |   12 ++++++------
 4 files changed, 20 insertions(+), 20 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-mapi-gal.c b/src/addressbook/e-book-backend-mapi-gal.c
index d7da689..fb992eb 100644
--- a/src/addressbook/e-book-backend-mapi-gal.c
+++ b/src/addressbook/e-book-backend-mapi-gal.c
@@ -286,12 +286,13 @@ e_book_backend_mapi_gal_authenticate_user (EBookBackend *backend,
 
 	case GNOME_Evolution_Addressbook_MODE_REMOTE:
 
-		priv->conn = exchange_mapi_connection_new (priv->profile, passwd);
-		if (!priv->conn) {
-			priv->conn = exchange_mapi_connection_find (priv->profile);
-			if (priv->conn && !exchange_mapi_connection_connected (priv->conn))
-				exchange_mapi_connection_reconnect (priv->conn, passwd);
-		}
+		/* rather reuse already established connection */
+		priv->conn = exchange_mapi_connection_find (priv->profile);
+		if (priv->conn && !exchange_mapi_connection_connected (priv->conn))
+			exchange_mapi_connection_reconnect (priv->conn, passwd);
+		else if (!priv->conn)
+			priv->conn = exchange_mapi_connection_new (priv->profile, passwd);
+
 		if (!priv->conn)
 			return e_data_book_respond_authenticate_user (book, opid,GNOME_Evolution_Addressbook_OtherError);
 
diff --git a/src/addressbook/e-book-backend-mapi-utils.c b/src/addressbook/e-book-backend-mapi-utils.c
index 13a5c04..1177c42 100644
--- a/src/addressbook/e-book-backend-mapi-utils.c
+++ b/src/addressbook/e-book-backend-mapi-utils.c
@@ -360,8 +360,7 @@ mapi_book_utils_contact_from_props (ExchangeMapiConnection *conn, mapi_id_t fid,
 				nt |= t->dwLowDateTime;
 				time = nt_time_to_unix (nt);
 				e_contact_set (contact, mappings[i].field_id, ctime_r (&time, buff));
-			} else
-				printf("Nothing is printed\n");
+			}
 		} else if (contact_type == ELEMENT_TYPE_COMPLEX) {
 			if (mappings[i].field_id == E_CONTACT_IM_AIM) {
 				GList *list = g_list_append (NULL, value);
diff --git a/src/addressbook/e-book-backend-mapi.c b/src/addressbook/e-book-backend-mapi.c
index 9fda579..dc78e57 100644
--- a/src/addressbook/e-book-backend-mapi.c
+++ b/src/addressbook/e-book-backend-mapi.c
@@ -1527,12 +1527,12 @@ e_book_backend_mapi_authenticate_user (EBookBackend *backend,
 
 	case GNOME_Evolution_Addressbook_MODE_REMOTE:
 
-		priv->conn = exchange_mapi_connection_new (priv->profile, passwd);
-		if (!priv->conn) {
-			priv->conn = exchange_mapi_connection_find (priv->profile);
-			if (priv->conn && !exchange_mapi_connection_connected (priv->conn))
-				exchange_mapi_connection_reconnect (priv->conn, passwd);
-		}
+		/* rather reuse already established connection */
+		priv->conn = exchange_mapi_connection_find (priv->profile);
+		if (priv->conn && !exchange_mapi_connection_connected (priv->conn))
+			exchange_mapi_connection_reconnect (priv->conn, passwd);
+		else if (!priv->conn)
+			priv->conn = exchange_mapi_connection_new (priv->profile, passwd);
 
 		if (!priv->conn)
 			return e_data_book_respond_authenticate_user (book, opid,GNOME_Evolution_Addressbook_OtherError);
diff --git a/src/calendar/e-cal-backend-mapi.c b/src/calendar/e-cal-backend-mapi.c
index 68dddc3..4596662 100644
--- a/src/calendar/e-cal-backend-mapi.c
+++ b/src/calendar/e-cal-backend-mapi.c
@@ -112,12 +112,12 @@ e_cal_backend_mapi_authenticate (ECalBackend *backend)
 	if (priv->conn)
 		g_object_unref (priv->conn);
 
-	priv->conn = exchange_mapi_connection_new (priv->profile, priv->password);
-	if (!priv->conn) {
-		priv->conn = exchange_mapi_connection_find (priv->profile);
-		if (priv->conn && !exchange_mapi_connection_connected (priv->conn))
-			exchange_mapi_connection_reconnect (priv->conn, priv->password);
-	}
+	/* rather reuse already established connection */
+	priv->conn = exchange_mapi_connection_find (priv->profile);
+	if (priv->conn && !exchange_mapi_connection_connected (priv->conn))
+		exchange_mapi_connection_reconnect (priv->conn, priv->password);
+	else if (!priv->conn)
+		priv->conn = exchange_mapi_connection_new (priv->profile, priv->password);
 
 	if (priv->conn && exchange_mapi_connection_connected (priv->conn)) {
 		return GNOME_Evolution_Calendar_Success;



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