GNOME Bugzilla – Bug 544051
contacts on webdav plugin
Last modified: 2009-12-29 07:26:14 UTC
Attached is a new ebook backend which stores contacts in a webdav store. Features: * Supports all ebook operations with all fields (we simply store the complete vcard files on the server) * Caches vcards locally (based on ETags) * Can detect synchronisation conflicts with If-Match If-None-Match http headers. Unfortunately apache < 2.2.8 does not support them properly so there's a switch to force them off. * This is also a good base for implementing carddav (though I personally don't understand why we need carddav anyway when it works nice with webdav) Issues: * No GUI for setting up new addressbooks yet * It would be nice to have a better way to report errors to the user. For example if someone else has changed the contact on the server. We can only give a general "Other Error" type message.
Created attachment 114946 [details] [review] addressbook on webdav
Oh this is so cool, thanks. I believe CardDav has useful extensions like decent searching, but I've not looked. I've had a very quick look at the source and it seems reasonable. Srini, would it be reasonable to commit this as soon as possible? Even if Evolution doesn't have a UI for it, other clients can use it.
Ross, IIUC Matzeb has a cooked a UI already for Evolution plugins. I want to take it for 2.23.6 due Aug 1st week. Thanks.
Created attachment 115057 [details] [review] evolution GUI plugin for webdav addressbooks This a first attempt at a GUI for adding webdav addressbook sources. So far it works, though there's room for usability improvements: * Showing webdav:// as protocol is confusing - as we really use http:// or https:// * We should detect if someone encodes the username in the URL (http://myname@server/), extract the username and fill in the username field * Depending on wether Use SSL is selected rewrite URL to start with http:// or https:// * That IfMatch checkbox is confusing (though I fear that lots of apaches out there have a version < 2.2.8, so lots of users will need that option) * When removing addressbooks evolution tells me that "This address book will be removed permanently." which isn't really true: It's not removing the addressbook on the server but just the reference to it. Anyway lots of the other plugins have similar problems, so I guess this is ready for a release.
Created attachment 115058 [details] [review] evolution GUI plugin for webdav addressbooks some source cleanups
Akhil, can you do a test run on it? I want it to be in prolly this week intime for the next release.
Created attachment 115386 [details] [review] addressbook on webdav Improved version of backend: - do the right thing when server returns weak ETags correctly - removed debug printfs
Created attachment 115387 [details] [review] evolution GUI plugin for webdav addressbooks Improved version of GUI plugin: - Enter complete URLs with http:// and https:// consequently remove use_ssl switch and determine that from the URL - add auth and user entries, so the password boxes tell you the correct username/server
I did some more intensive testing/source code auditing and found the following unresolved points: - backend goes into endless loop if the submitted password is wrong (this is critical... maybe someone with deeper evolution password manager knowledge can tell me why this is happening) - It seems like you have to do some special setup to support proxy servers. Unforunately I don't have a proxy server for testing here at the moment.
MatzeB, i applied you patches on trunk, i was able to build without any error. I tried to set up local webdev but didn't succeed. I tried this url http://test.webdav.org/ but it didn't work for me. If you are aware of any server where i can try your patch, please let me know. I got two crashes when i was trying to add random address book. Please find them below.
Created attachment 115480 [details] Gdb traces of evolution process Evolution crashed when i tried to view property of address book
Created attachment 115481 [details] Gdb traces of evolution process Evolution crashed when tried to add a new address book.
I think its important we commit it for 2.23.6. Basic thing works, we can fix the rest after 2.23.6. string/ui needs to be announced.
Some comments to Akhil Laddhas issues: - test.webdav.org doesn't seem to be working correctly (I couldn't connect with any webdav software I have here, it always tells me the directory does not exist) - You probably additonally hit the wrong password results in endless-loop problems which I described above. In this case evolution-data-server will just hang forever and you probably hit other evolution bugs when the data-server hangs.
Created attachment 115784 [details] [review] addressbook on webdav - fixed password handling. You should never get endless loops if the password is wrong.
Another note: I tested some more test-servers on the net out there. It turns out that some of them (I tried www.testrumpus.com) do not remember the mime-type, although vcards got uploaded with text/x-vcard, the server later always reported them as application/binary so the plugin did not pick them up... I guess at some point we should create a quirks mode which ignores Content-Type and just looks at .vcf suffix.
Push it for 2.23.6, feature freeze. Lets fix more bugs after the release. Thx Matzeb.
Patch in e-d-s committed to SVN trunk as r9254 http://svn.gnome.org/viewvc/evolution-data-server?view=revision&revision=9254 Patch in evolution committed to SVN trunk as r35902 http://svn.gnome.org/viewvc/evolution?view=revision&revision=35902 String additions (if any) need to be announced to gnome-doc-list and gnome-i18n.
Announced. http://mail.gnome.org/archives/gnome-doc-list/2008-August/msg00009.html
*** Bug 336224 has been marked as a duplicate of this bug. ***
Maybe this bug should be closed.