[Evolution-hackers] Addressbook connection status



Hi friends

Shouldn't e_book_backend_open (in e-book-backend.c) report the
connection status as well as the writable status?

Otherwise we get this problem:

1) App A opens an addressbook, causing it to be opened in e-d-s for the
first time, and thus also causing it to be loaded. This typically
results in the connection status being reported, so should App A be
interested, it can know the resulting connection status.

2) App B opens the same addressbook, causing e-d-s to just return
quickly from e_book_backend_open. The writable status gets reported, but
not the connection status. The result is that App B, if its interested,
thinks the book is always offline.


The apps can test the connection status by calling e_book_is_online. But
this relies on the connection status having been reported back from
e-d-s to the application in the first place.


In reality there is one place where e_book_is_online is used in Evo: in
load_source_cb in component/addressbook.c. The test is made to decide
whether to authenticate (if required or not).

So I start appA that connects to my ldap addressbook via e-d-s. I then
start appB (in this case Evo itself), it sees it as offline, so doesn't
bother authenticating ... so I can't edit my addresses.

Incidentally, it seems evo doesn't really need to check the online
status before authenticating, since looking at the backends they do a
sensible thing when trying to authenticate on an offline database. So in
this case the call to e_book_is_online is somewhat redundant.

Anyhow, we should still allow all Apps to be able to see the correct
connection status though.

Karl




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