aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog21
-rw-r--r--addressbook/backend/pas/pas-backend-file.c13
-rw-r--r--addressbook/backend/pas/pas-backend-ldap.c3
-rw-r--r--addressbook/backend/pas/pas-book-factory.c4
4 files changed, 25 insertions, 16 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index a0fcb2b711..935ce550ac 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,5 +1,26 @@
2001-11-09 Chris Toshok <toshok@ximian.com>
+ [ Fixes Ximian bug #14687 ]
+ * backend/pas/pas-backend-file.c
+
+ * backend/pas/pas-book-factory.c
+ (pas_book_factory_process_request): do load_uri before add_client,
+ so we know if the load actually worked (add_client uses this
+ information to respond to the new client.) before this change,
+ the client would still think the book was in a useful state even
+ if the load_uri failed.
+
+ * backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): if
+ the we're not connected, say so.
+
+ * backend/pas/pas-backend-file.c (pas_backend_file_add_client):
+ same.
+ (pas_backend_file_load_uri): don't report_writable here,
+ add_client does it. was only needed before because of the
+ improper ordering in pas-book-factory.c above.
+
+2001-11-09 Chris Toshok <toshok@ximian.com>
+
[ Fixes Ximian bug #14646 ]
* gui/component/addressbook.c (addressbook_default_book_open): new
function. if the default_book failed to load, load the local
diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c
index 25c38888a4..56c8d545cc 100644
--- a/addressbook/backend/pas/pas-backend-file.c
+++ b/addressbook/backend/pas/pas-backend-file.c
@@ -1236,7 +1236,6 @@ pas_backend_file_load_uri (PASBackend *backend,
PASBackendFile *bf = PAS_BACKEND_FILE (backend);
char *filename;
gboolean writable = FALSE;
- GList *l;
int db_error;
DB *db;
int major, minor, patch;
@@ -1326,13 +1325,6 @@ pas_backend_file_load_uri (PASBackend *backend,
g_free(bf->priv->uri);
bf->priv->uri = g_strdup (uri);
- /* report the writable status of the book to all its clients */
- for (l = bf->priv->clients; l; l = g_list_next (l)) {
- PASBook *book = l->data;
-
- pas_book_report_writable (book, writable);
- }
-
return TRUE;
}
@@ -1386,11 +1378,8 @@ pas_backend_file_add_client (PASBackend *backend,
if (bf->priv->writable)
pas_book_report_writable (book, bf->priv->writable);
} else {
- /* Open the book. */
pas_book_respond_open (
- book, GNOME_Evolution_Addressbook_BookListener_Success);
- if (bf->priv->writable)
- pas_book_report_writable (book, bf->priv->writable);
+ book, GNOME_Evolution_Addressbook_BookListener_OtherError);
}
bonobo_object_unref (BONOBO_OBJECT (book));
diff --git a/addressbook/backend/pas/pas-backend-ldap.c b/addressbook/backend/pas/pas-backend-ldap.c
index 83e2b85971..3b0cb673af 100644
--- a/addressbook/backend/pas/pas-backend-ldap.c
+++ b/addressbook/backend/pas/pas-backend-ldap.c
@@ -2549,9 +2549,8 @@ pas_backend_ldap_add_client (PASBackend *backend,
pas_book_respond_open (
book, GNOME_Evolution_Addressbook_BookListener_Success);
} else {
- /* Open the book. */
pas_book_respond_open (
- book, GNOME_Evolution_Addressbook_BookListener_Success);
+ book, GNOME_Evolution_Addressbook_BookListener_OtherError);
}
pas_book_report_writable (book, bl->priv->writable);
diff --git a/addressbook/backend/pas/pas-book-factory.c b/addressbook/backend/pas/pas-book-factory.c
index 6d4bcd8eb1..76e73ceca0 100644
--- a/addressbook/backend/pas/pas-book-factory.c
+++ b/addressbook/backend/pas/pas-book-factory.c
@@ -282,10 +282,10 @@ pas_book_factory_process_request (PASBookFactory *factory,
if (!backend)
goto out;
- if (!pas_backend_add_client (backend, listener))
+ if (!pas_backend_load_uri (backend, uri))
goto out;
- pas_backend_load_uri (backend, uri);
+ pas_backend_add_client (backend, listener);
goto out;
}